def solution(recode):
answer = []
# 1. split으로 recode의 명령어들을 나눠 받자
# 2.1 떠나고 나간게 인지되면 기존에 기록된 이름들을 바꿔준다.
# 2.2 채팅방 안에서 Change를 하면 기존에 기록된 이름들을 바꿔준다.
# 3. 바뀐 기록들 출력
res = []
tmp = {}
for re in recode:
info = re.split(' ')
if info[0] == 'Enter':
tmp[info[1]] = info[2]
res.append((info[1],'Enter'))
elif info[0] == 'Leave':
res.append((info[1],'Leave'))
else:
tmp[info[1]] = info[2]
for uid, com in res:
if com == 'Enter':
txt = '{}님이 들어왔습니다.'.format(tmp[uid])
answer.append(txt)
if com == 'Leave':
txt = '{}님이 나갔습니다.'.format(tmp[uid])
answer.append(txt)
return answer
if __name__=="__main__":
recode = ['Enter uid1234 Muzi',
'Enter uid4567 Prodo',
'Leave uid1234',
'Enter uid1234 Prodo',
'Change uid4567 Ryan']
print(solution(recode))
강의에서 푼 방법
def solution(recode):
answer = []
user = {}
for log in recode:
logSplit = log.split(' ')
if logSplit[0] == 'Enter':
user[logSplit[1]] = logSplit[2]
answer.append([logSplit[1], '님이 들어왔습니다.'])
elif logSplit[0] == 'Leave':
answer.append([logSplit[1], '님이 나갔습니다.'])
elif logSplit[0] == 'Change':
user[logSplit[1]] = logSplit[2]
answer = [user[i[0]] + i[1] for i in answer]
return answer
if __name__=="__main__":
recode = ['Enter uid1234 Muzi',
'Enter uid4567 Prodo',
'Leave uid1234',
'Enter uid1234 Prodo',
'Change uid4567 Ryan']
print(solution(recode))