[algorithm] 2019 Kakao Blind Recruitment 1차 - 오픈 채팅방
2021. 9. 9. 23:07ㆍAlgorithm
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/42888
코딩테스트 연습 - 오픈채팅방
오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오
programmers.co.kr
- 정답률: 59.91%
- 채팅방에 누군가 들어오고 나갈 때, "[닉네임]님이 들어왔습니다" , "[닉네임]님이 나갔습니다." 가 출력된다.
- 닉네임은 중복이 가능하다.
- 채팅방에서 닉네임을 변경하는 방법은 두 가지이다.
- 채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다.
- 채팅방에서 닉네임을 변경한다.
- 사용자가 이름을 바꾸면 변경사항이 과거 출력내용에도 반영된다. (나가서 변경한 사람도)
2. 풀이
def solution(record):
namedict={}
inoutlist =[]
for line in record:
li = line.split(" ")
if li[0]=="Enter":
namedict[li[1]]=li[2]
inoutlist.append((0,li[1]))
elif li[0]=="Leave":
inoutlist.append((1,li[1]))
else:
namedict[li[1]]=li[2]
#print(inoutlist)
answer = []
for option,id in inoutlist:
if option==0:
answer.append("{}님이 들어왔습니다.".format(namedict[id]))
else:
answer.append("{}님이 나갔습니다.".format(namedict[id]))
return answer
사용자의 닉네임이 어느 시점에 바뀌든 결과적으로 마지막에 방장이 보는 내용에는 최종 닉네임으로 보여진다.
들어오고 나오는 것에 대한 기록은 변하지 않는 값인 사용자의 ID 로 기록한다.
사용자 ID -> 닉네임 간 딕셔너리를 만들고 이름이 바뀌면 반영해준다.
마지막으로 출력포멧을 만들 때, 최종 닉네임을 반영한다.
3. 후기
2019 blind 1차 테스트 첫번째 문제로 간단한문제였다.
'Algorithm' 카테고리의 다른 글
| [algorithm] 2018 Kakao Blind Recruitment 3차 - n진수 게임. (0) | 2022.03.10 |
|---|---|
| [algorithm] 2018 Kakao Blind Recruitment 1차 - 셔틀버스 (0) | 2022.03.09 |
| [algorithm] 2018 Kakao Blind Recruitment 1차 - 추석 트래픽 (0) | 2021.09.07 |
| [algorithm] 2018 Kakao Blind Recruitment 1차 - 프렌즈4블록 (0) | 2021.09.07 |
| [algorithm] 2018 Kakao Blind Recruitment 1차 - 뉴스 클러스터링 (0) | 2021.09.06 |