로직
- uid로 사람을 구분하기 위해서 dictionary에 key와 value값으로 하면 바뀔 때 값만 알아서 바꿔준다.
- uid를 통해 enter, leave를 다 표현한 후, 마지막에 uid에 맞는 최종 이름을 넣어준다.
코드
def solution(record):
answer = []
users = {} # {'uid1234':'M', 'uid1234':'P'}
temp = [] # [['uid1234', '님이 들어왔습니다.' ]] -> 이후에 uid가 최종적으로 결정나면 그 값을 바꿔주기
for rec in record:
log = rec.split(' ')
enter = '님이 들어왔습니다.'
leave = '님이 나갔습니다.'
if log[0] == 'Enter':
users[log[1]] = log[2]
temp.append([log[1], enter])
elif log[0] == 'Leave':
temp.append([log[1], leave])
elif log[0] == 'Change':
users[log[1]] = log[2]
for i in temp:
answer.append(users[i[0]] + i[1])
return answer
주의할 점
1. ** 문제점 : answer.append(f'{users[log[1]]}님이 들어왔습니다.')
** 해결책 : users값이 바뀌면 자연스럽게 바뀔까? 싶어 한번 해봤는데 역시나 바뀌지 않는다,,
2. ** 문제점 : temp.append([log[1] + enter])
** 해결책
- 여기서 log[1]+enter해버리면 'uid1234님이 들어왔습니다.'처럼 하나의 문장으로 만들어진다.(둘 다 str이라서)
- 나중에 키값인 uid를 사용하려면 다시 split해야하기때문에 temp라는 리스트안에 [log[1] + enter]로 넣어준다.
'알고리즘' 카테고리의 다른 글
[programmers] 네트워크 (0) | 2020.09.04 |
---|---|
[programmers] 파일명 정렬 (0) | 2020.09.02 |
[programmers] 뉴스 클러스터링 (0) | 2020.08.31 |
[programmers] 튜플 (0) | 2020.08.31 |
[programmers] 다트 게임 (0) | 2020.08.31 |