[프로그래머스] 오픈 채팅방

해시


이 문제는 uid와 nickname을 해시테이블로 저장해서 풀면 매우 간단한 문제이다.

Enter 와 Change 명령어가 들어올 때마다 해당 uid를 key로 하는 값을 업데이트 한다.

마지막에 커맨드를 다시 처음부터 순회하며 값을 출력하면 된다.

구현


def solution(record):
    result = []
    parsed = []
    uid_nick = dict()
    for r in record:
        tmp = r.split()
        parsed.append([tmp[0], tmp[1]])
        if tmp[0] == "Enter" or tmp[0] == "Change":
            uid_nick[tmp[1]] = tmp[2]

    for cmd, uid in parsed:
        if cmd == "Enter":
            result.append(f"{uid_nick[uid]}님이 들어왔습니다.")
        elif cmd == "Leave":
            result.append(f"{uid_nick[uid]}님이 나갔습니다.")

    return result

print(solution(["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"]))