[카카오] 2019 KAKAO BLIND RECRUITMENT 1차 풀이 – 오픈채팅방
이 포스팅에서는 2020 카카오 블라인드 채용 1차 문제인 ‘오픈채팅방’ 문제를 해설합니다. 본 풀이에 대한 테스트는 https://programmers.co.kr/learn/courses/30/lessons/42888에서 수행하였으며 공식 풀이와 일치하지 않을 수 있습니다.
공식 풀이는 링크를 참조하시기 바랍니다.
오픈채팅방
출처 : 2019 KAKAO 블라인드 채용 온라인 1차
링크 : https://programmers.co.kr/learn/courses/30/lessons/42888
카테고리 : Greedy
난이도 : 쉬움
문제 설명
유저가 채팅 방에 들어오거나, 나가거나 닉네임을 변경한 기록들을 참조해서 최종적으로 대화방에 표시되는 메시지를 출력하면 된다.
문제 풀이
레코드를 분석하여 길이가 3인 것은 채팅방 입장이거나 닉네임 변경이므로, 이 경우를 탐지하여 dictionary에 userID에 해당하는 닉네임을 계속 업데이트 해나간다.
이후 다시 레코드를 순차적으로 분석해서 userID에 해당하는 닉네임을 dictionary에서 참조하여 출력하면 된다.
정답 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | def solution(records): answer = [] dic = {} for record in records: info = record.split() if len(info) == 3: identifier, nick = info[1], info[2] dic[identifier] = nick for record in records: info = record.split() action, nick = info[0], dic[info[1]] if action == “Enter”: answer.append(nick + “님이 들어왔습니다.”) elif action == “Leave”: answer.append(nick + “님이 나갔습니다.”) return answer | cs |
Competition 카카오 블라인드 채용 오픈채팅방