record: ["Enter uid1234 Muzi", "Change uid1234 Ryan"]
result: ["Ryan님이 들어왔습니다."]
기록을 모두 받고 출력을 최종으로 하는 방식이다. 앞의 유저 닉네임 변경이 어떻게 되는지에 따라서 최종 출력이 달라지는 부분을 신경 쓰면 된다.
- 입장에서는 dict에 새로운 유저 아이디와 닉네임을 저장
member["아이디"] = "닉네임"- 퇴장에서는 로그 기록만 진행한다. (member의 데이터를 변경, 참조할 상황이 없다)
- 닉네임이 변경되면 dict에 저장된 유저의 아이디를 통해서 찾고 유저 닉네임을 변경한다.
member["아이디"] = "닉네임"
- log.append('아이디', '들어왔습니다.')
- answer.append("member[아이디]님이 들어왔습니다.")
닉네임이 변경되면 앞의 로그도 모두 변경된 닉네임으로 출력이 되어야 하므로 로그에 기록은 아이디로 저장하고 모든 기록이 끝나면 아이디를 최종 닉네임으로 변경한다.
def solution(record):
answer,log,member = [],[],{}
for i in record:
tmp=i.split()
if tmp[0]=='Enter':
log.append([tmp[1],"들어왔습니다."])
member[tmp[1]] = tmp[2] # ①
elif tmp[0]=='Leave':
log.append([tmp[1],"나갔습니다."])
elif tmp[0]=='Change':
member[tmp[1]] = tmp[2]
for i in log: answer.append("{}님이 {}".format(member[i[0]], i[1])) # ②
return answer