record
["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"]
이런식으로 문자열 리스트가 주어지면
result
["Prodo님이 들어왔습니다.", "Ryan님이 들어왔습니다.", "Prodo님이 나갔습니다.", "Prodo님이 들어왔습니다."]
이런식으로 문자열 리스트를 반환하는 문제이다.
주어진 record를 순서대로 읽으면서 첫글자가 'E'면 [사용자의 id, "님이 들어왔습니다."] 형태로 answer 리스트에 추가하고 딕셔너리를 만들어서
dictionary[id] = 이름
식으로 id를 key로 닉네임을 value값으로 넣어주었다.
'L'면 [사용자의 id,"님이 나갔습니다."] 형태로 answer 리스트에 추가해주었다.
'C'면 딕셔너리의 해당id의 닉네임 값을 바꿔주었다.
answer 리스트에 모두 추가가 되었으면 리스트의 id에 해당하는 닉네임을 딕셔너리에 찾아줘서 치환하고 닉네임과 + "들어왔습니다." or "나갔습니다." 문자열을 합쳐준다.!!!
def solution(record):
answer = []
dictionary = {}
for i in record:
temp = i.split(" ")
# print(temp)
if i[0] == 'E':
dictionary[temp[1]] = temp[2]
answer.append([temp[1], "님이 들어왔습니다."])
if i[0] == 'L':
answer.append([temp[1], "님이 나갔습니다."])
if i[0] == 'C':
dictionary[temp[1]] = temp[2]
for z in range(len(answer)):
answer[z][0] = dictionary[answer[z][0]]
answer[z] = answer[z][0] + answer[z][1]
return answer
딕셔너리를 이용해서 id값을 key로 줘서 쉽게 푼 문제!
어려운 문제들도 이렇게 쉽게 풀었으면..