내용으로 건너뛰기
테페리넷
사용자 도구
등록
로그인
사이트 도구
검색
도구
문서 보기
Fold/unfold all
역링크
미디어 관리자
사이트맵
등록
로그인
>
미디어 관리자
사이트맵
현재 위치:
테페리넷
»
Problem Solving
»
문제
»
프로그래머스
»
오픈채팅방
ps:problems:programmers:42888
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== 오픈채팅방 ====== ===== 풀이 ===== * 입장, 재입장, 변경 등의 과정을 거쳐서 최종적으로 user_id별로 어떤 닉네임이 오는지를 저장하고 그것을 기준으로 메세지를 만들어주면 된다. * 레코드를 순회하면서 아이디별 최종 닉네임을 딕셔너리에 저장하고, 다시한번 레코드를 순회하면서 메세지를 만드는 것이 가장 간단하다 * 시간복잡도는 O(n) ===== 코드 ===== <dkpr py> """Solution code for "Programmers 42888. 오픈채팅방". - Problem link: https://programmers.co.kr/learn/courses/30/lessons/42888 - Solution link: http://www.teferi.net/ps/problems/programmers/42888 """ def solution(record): nick_by_id = {} for rec in record: action, *words = rec.split() if action in ('Enter', 'Change'): user_id, nickname = words nick_by_id[user_id] = nickname answer = [] for rec in record: action, user_id, *_ = rec.split() if action == 'Enter': answer.append(f'{nick_by_id[user_id]}님이 들어왔습니다.') elif action == 'Leave': answer.append(f'{nick_by_id[user_id]}님이 나갔습니다.') return answer </dkpr> {{tag>프로그래머스 ps:problems:programmers:Level_2}}
ps/problems/programmers/42888.txt
· 마지막으로 수정됨: 2021/12/31 16:52 저자
teferi
문서 도구
문서 보기
역링크
Fold/unfold all
맨 위로