2019 KAKAO BLIND RECRUITMENT - 오픈채팅방
from collections import defaultdict
def solution(record):
logs = []
id_name_dict = defaultdict(str)
for rec in record:
words =rec.split(" ")
if words[0] == "Enter":
id_name_dict[words[1]] = words[2]
logs.append([words[1], "님이 들어왔습니다."])
elif words[0] == "Leave":
logs.append([words[1], "님이 나갔습니다."])
else:
id_name_dict[words[1]] = words[2]
answer = []
for log in logs:
answer.append(id_name_dict[log[0]]+log[1])
return answer
print(solution(["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"]),
["Prodo님이 들어왔습니다.", "Ryan님이 들어왔습니다.", "Prodo님이 나갔습니다.", "Prodo님이 들어왔습니다."])
uid는 바뀌지 않는다는 것을 이용하여 uid를 기준으로 로그를 남기고, uid를 키로, 닉네임을 값으로하는 딕셔너리로 정보를 저장한다. 마지막 로그에 대해 닉네임을 찾아서 출력하면된다.