https://school.programmers.co.kr/learn/courses/30/lessons/42888
2019 KAKAO BLIND RECRUITMENT
def solution(record):
r_split = [r.split() for r in record]
user = {}
order = []
answer = []
for r in r_split:
if r[0] == 'Enter':
user[r[1]] = r[2]
order.append((r[1], 'E'))
elif r[0] == 'Leave':
order.append((r[1], 'L'))
else:
user[r[1]] = r[2]
for o in order:
if o[1] == 'E':
answer.append(user[o[0]]+"님이 들어왔습니다.")
else:
answer.append(user[o[0]]+"님이 나갔습니다.")
return answer
카카오 레벨2치고 엄청 쉬웠다.
리스트, 딕셔너리, 튜플을 적절히 사용하는 것이 포인트인 듯
타인 코드
def solution(record):
answer = []
namespace = {}
printer = {'Enter':'님이 들어왔습니다.', 'Leave':'님이 나갔습니다.'}
for r in record:
rr = r.split(' ')
if rr[0] in ['Enter', 'Change']:
namespace[rr[1]] = rr[2]
for r in record:
if r.split(' ')[0] != 'Change':
answer.append(namespace[r.split(' ')[1]] + printer[r.split(' ')[0]])
return answer
거의 비슷한 로직으로 구현한 것 같음