🔗문제 링크
💡생각한 풀이법
- record의 한개 요소를 split 한 뒤 "Enter" or "Change" 즉 "Leave"가 아니라면 닉네임을 저장하는 딕셔너리 (nickname_dict)에 {uid:nickname} 형태로 저장
- tmp[0]이 "Change" 명령어가 아닐때 nickname_dict에서 tmp[1]을 key로 최종 닉네임을 찾아 s에 저장
- tmp[0] 명령어에 따라 미리 생성해 둔 act 딕셔너리에서 출력할 메세지를 얻은 뒤 s 문자열에 더함
- s를 answer 배열에 저장 후 리턴
🔍 최종 코드
def solution(record):
answer = []
nickname_dict = {}
act = {"Enter": "님이 들어왔습니다.",
"Leave":"님이 나갔습니다."}
#1
for r in record:
tmp = r.split()
if tmp[0] != "Leave":
nickname_dict[tmp[1]] = tmp[2]
for r in record:
tmp = r.split()
s = nickname_dict[tmp[1]]
if tmp[0] != "Change":
s += act[tmp[0]]
answer.append(s)
return answer