이 포스팅에서는 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 카카오 블라인드 채용 오픈채팅방
합격왕 우여곡절 끝에 드디어 합격왕에 광고를 붙였다. 서비스를 시작한지 무려 4년이 지나서야 드디어 광고를 시작하게…
반복적인 일상 매일 아침 일어나 회사에 출근하고, 저녁을 먹고 돌아오는 일상의 반복이다. 주말은 가족을 보러…
Planning A well-structured plan has the following characteristics: First, the ultimate vision you aim to…
English The most common problem for English learners like myself is that we often use…
This website uses cookies.