def solution(record):
user_info = {}
stores = []
answer = []
for info in record:
info = info.split()
action, user_id, user_name = info[0], info[1], info[2] if info[0]!='Leave' else None
if action=='Enter':
user_info[user_id] = user_name
stores.append((action, user_id))
if action=='Leave':
stores.append((action, user_id))
if action=='Change':
user_info[user_id] = user_name
for info in stores:
action, user_id, user_name = info[0], info[1], user_info[info[1]]
answer.append(user_name+'님이 '+ ('들어왔습니다.' if action=='Enter' else '나갔습니다.'))
return answer
생각해보기
- id 값으로 유저의 이름을 조회할 수 있는 user_info 딕셔너리를 만든다.
- record 정보를 돈다:
- Enter일 경우:
- id 값으로 user_info에서 해당 유저를 찾아 이름을 바꿔준다.
- stores에 유저의 행동과 유저의 id를 담는다.
- Leave일 경우:
- stores에 유저의 행동과 유저의 id를 담는다.
- Change일 경우:
- id 값으로 user_info에서 해당 유저를 찾아 이름을 바꿔준다.
- stores을 돈다.
- 존재하는 id로 user_info에서 이름을 검색해서 조건에 맞게 출력한다.