LEVEL :
Level2
문제 요약 :
2019년 카카오톡 코딩테스트 제출 문제이다.
주어진 문자열 출입기록 로그를 통해 최종 오픈채팅 방 출입기록을 출력하는 문제이다.
해결 방안 :
문제는 길지만 구현에는 큰 어려움은 없었다. uid를 딕셔너리의 key 값으로 두고 입장할 때나 이름 변경시 value 값을 변경해주고 최종적으로 출력할 때는 uid값을 기준으로 출력해 주면 된다.
시간 복잡도 :
N = records 길이
O(N)
Solution
def solution(record):
answer = []
records = [record[i].strip().split() for i in range(len(record))]
info = {}
for record in records :
command = record[0]
uid = record[1]
if command != "Leave" :
name = record[2]
info[uid] = name
in_msg = "님이 들어왔습니다."
out_msg = "님이 나갔습니다."
for record in records :
command = record[0]
uid = record[1]
if command != "Change" :
answer.append(info[uid]+ in_msg if command == "Enter" else info[uid]+out_msg)
return answer
프로그래머스 : https://programmers.co.kr/learn/courses/30/lessons/42888