[알고리즘] 프로그래머스 - 오픈채팅방

June·2021년 3월 6일
0

알고리즘

목록 보기
121/260

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를 키로, 닉네임을 값으로하는 딕셔너리로 정보를 저장한다. 마지막 로그에 대해 닉네임을 찾아서 출력하면된다.

0개의 댓글