[프로그래머스] 오픈 채팅방
해시
이 문제는 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"]))