03. 오픈채팅방
코딩테스트 연습 > 2019 KAKAO BLIND RECRUITMENT > 오픈채팅방
https://programmers.co.kr/learn/courses/30/lessons/42888
Input value =
Output value =
record는 다음과 같은 문자열이 담긴 배열이며, 길이는 1 이상 100,000 이하이다.
다음은 record에 담긴 문자열에 대한 설명이다.
#00
record = ["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"]
#01
array = []
name = {}
for i in record:
array.append(i.split(' '))
문자열의 0번째 값이 Enter,Change 일 경우,
문자열의 1번째 값(아이디)를 키 값으로 한 딕셔너리의 value 값에 2번째 값인 닉네임을 갱신한다.
for a in array:
if a[0] in ['Enter','Change']:
name[a[1]]=a[-1]
#02
answer= []
for a in array:
if a[1] in name.keys():
05-1. 원소의 0번째 값이 'Enter'일 경우 '()님이 들어왔습니다'를 출력 리스트에 append()
if a[0] in 'Enter':
answer.append('{}님이 들어왔습니다.'.format(name[a[1]]))
05-2. 원소의 0번째 값이 'Leave'일 경우 '()님이 나갔습니다'를 출력 리스트에 append()
elif a[0] in 'Leave':
answer.append('{}님이 나갔습니다.'.format(name[a[1]]))
#03
answer
def solution(record):
array = []
name = {}
for i in record:
array.append(i.split(' '))
for i in array:
if i[0] in ["Enter","Change"]:
name[i[1]]=i[-1]
answer = []
for i in array:
if i[1] in name.keys():
if i[0] in "Enter":
answer.append("{}님이 들어왔습니다.".format(name[i[1]]))
elif i[0] in "Leave":
answer.append("{}님이 나갔습니다.".format(name[i[1]]))
return answer
# Code test
record = ["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"]
solution(record)