[파이썬] 프로그래머스 : 오픈채팅방 (Lv.2)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
방향성 생각
마지막 사람이 봤을 때가 중요하다.
user id에 따른 닉네임을 딕셔너리에 저장해놓고 마지막에 변경 사항을 한 번에 바꿔준다.
def solution(record):
answer,table = [],{}
for info in record:
temp = info.split()
if temp[0] == 'Enter':
table[temp[1]] = temp[2]
answer.append([temp[1],'님이 들어왔습니다.'])
elif temp[0] == 'Leave':
answer.append([temp[1],'님이 나갔습니다.'])
else :
table[temp[1]] = temp[2]
result = []
for user_id,messege in answer:
result.append(str(table[user_id]+messege))
return result
enter 혹은 change에서는 닉네임이 바뀔수도 있으므로 바꿔준다.
enter / leave의 경우에는 answer에다가 user id가 어떤 들어오는지 나가는지 저장한다.
answer에 있는 user id를 마지막 닉네임으로 치환한다.
코멘트
카카오식 하란대로 하기.
'Algorithm > etc' 카테고리의 다른 글
[파이썬] 백준 28257: 알록달록 초콜릿 만들기 (골드3) (0) | 2023.07.20 |
---|---|
[파이썬] 프로그래머스 : 순위 검색 (Lv.2) (0) | 2023.07.17 |
[파이썬] 프로그래머스 : 메뉴 리뉴얼 (Lv.2) (0) | 2023.07.15 |
[파이썬] 프로그래머스 : 파일명 정렬 (Lv.2) (0) | 2023.07.15 |
[파이썬] 프로그래머스 : 방문 길이 (Lv.2) (0) | 2023.07.11 |
[파이썬] 프로그래머스 : 테이블 해시 함수 (Lv.2) (0) | 2023.07.11 |
[파이썬] 프로그래머스 : n^2 배열 자르기 (Lv.2) (0) | 2023.07.10 |
댓글