https://school.programmers.co.kr/learn/courses/30/lessons/42888
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
채팅 방에서 들어오고 나갈때 닉네임이 마지막으로 바뀐경우에 남는 닉네임을 결과로 만들어라.
입력
문자열 이 여러개인 리스트 record 가 주어진다. 문자열은 "(enter,leave,change) uid nickname" 순으로 들어있다.
출력
채팅방에 사람들이 들어오고 나갈때 남는 이름과 메세지를 적고 마지막으로 바뀐 닉네임으로 해당 메세지를 변경하여라.
def solution(record):
answer = []
elcDict = {} # enter leave change 를 키값으로 하는 딕셔너리를 만든다.
for elc in record: # 기록을 돈다.
elclist = elc.split() # record 를 잘 공백으로 나눈다.
inout = elclist[0] # enter leave change 중하나
uid = elclist[1] # uid
if len(elclist) == 3: # change 가 아닐때는 닉네임이 있으므로
name = elclist[2] # nickname
elcDict[uid] = name # 이름을 uid 의 값으로 넣어준다.
for elc in record:
elclist = elc.split() #record 를 공백으로 나눠준다.
inout = elclist[0]
uid = elclist[1]
if inout == 'Enter': # 들어올때
answer.append(elcDict[uid] + '님이 들어왔습니다.') # 마지막 uid로 저장된 닉네임으로 메세지를 만든다.
elif inout == 'Leave': # 나갈때
answer.append(elcDict[uid] + '님이 나갔습니다.') # 마지막 uid 로 저장된 닉네임으로 메세지를 만든다.
return answer
'알고리즘' 카테고리의 다른 글
프로그래머스/주식가격/py (0) | 2022.08.27 |
---|---|
프로그래머스/124 나라의 숫자/py (0) | 2022.08.26 |
프로그래머스/위장/py (0) | 2022.08.24 |
프로그래머스/전화번호 목록/py (0) | 2022.08.23 |
백준/가장 가까운 세 사람의 심리적 거리/py (0) | 2022.08.22 |