접근
아래처럼 set() 형식으로 저장했다. (첫번째 원소인 '순서'는 불필요하다.)
(순서, 아이디, 이름, 메시지)
(1, uid1234, Muzi, 님이 들어왔습니다.)
(2, uid4567, Prodo, 님이 들어왔습니다.)
(3, uid4567, -, 님이 나갔습니다.)
(4, uid4567, Prodo, 님이 들어왔습니다.)
(5, uid4567, Ryan, -)
Enter, Leave의 경우만 결과값에 반영된다 -> "Change"는 분기 처리
포인트
코드
def solution(record):
answer, tmp = list(), list()
id_name = {"Enter": "님이 들어왔습니다.",
"Leave": "님이 나갔습니다."}
temp = [string.split(' ') for string in record]
for i in temp:
if i[0] != 'Leave':
id_name[i[1]] = i[2]
if i[0] == "Enter" or i[0] == "Leave":
tmp.append('{},{}'.format(i[1], i[0]))
for i in tmp:
a, b = i.split(',')
answer.append('{}{}'.format(id_name[a], id_name[b]))
return answer