[구현] PRG 42888: 오픈채팅방
사용 언어: python 3.9.5
❓ Problem
문제 설명
https://programmers.co.kr/learn/courses/30/lessons/42888
난이도
level 2
🚩 Solution
시도 01)
1. 접근법
Change에서만 id에 따른 이름 변경이 이루어진다고 잘못 접근함
Enter로도 이름이 바뀔 수 있음
코드짜다가 뭔가 잘 안되길래 문제를 다시 읽고 잘못된 것을 알아차림
시도 02)
1. 접근법
id에 따른 이름표를 딕셔너리에 저장하고
record를 돌면서 딕셔너리에 해당하는 이름을 가져옴
2. 코드
import collections
def solution(record):
answer = []
rec = []
for r in record:
rec.append(r.split(' '))
dic = collections.defaultdict(str)
for r in rec:
if r[0] != 'Leave':
dic[r[1]] = r[2]
str1 = ''
for r in rec:
if r[0] == 'Enter':
str1 = dic[r[1]] + "님이 들어왔습니다."
elif r[0] == 'Leave':
str1 = dic[r[1]] + "님이 나갔습니다."
else: # 'Change'
continue
answer.append(str1)
return answer
3. 시간복잡도
record를 3번 돈다
O(3n) = O(n)
4. 결과
성공
5. 소요 시간
48분
(읽기 3분, 풀기 45분)
📕 피드백
1. 검색한 내용
2. 실수
문제 접근을 잘못함
3. 발전 방향 (개선/추가사항)
4. 다른 사람 풀이
Author And Source
이 문제에 관하여([구현] PRG 42888: 오픈채팅방), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sue1199842/구현-PRG-42888-오픈채팅방저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)