[브루트포스] PRG 42888: 오픈채팅방

사용 언어: python 3.9.5

❓ Problem

문제 설명

https://programmers.co.kr/learn/courses/30/lessons/42888

오픈채팅방 출입문구 작성

난이도

레벨 2

🚩 Solution

시도 01)

1. 접근법

딕셔너리 {유저아이디: 닉네임}

record를 2번 돈다.

1번째

enter, change만 확인: 각 유저아이디에 닉네임 적기

2번째

enter, leave만 확인: result 문구 작성

2. 코드

import collections
def solution(record):
    
    record = list(map(lambda x: x.split(), record))
    
    d = collections.defaultdict(str)

    # 딕셔너리에 유저아이디: 닉네임 적기
    for i in range(len(record)):
        if record[i][0] == "Leave":
            continue
        else:
            d[record[i][1]] = record[i][2]

    # 문구 작성
    answer = []
    for i in range(len(record)):
        if record[i][0] == "Enter":
            answer.append(str(d[record[i][1]])+"님이 들어왔습니다.")
        elif record[i][0] == "Leave":
            answer.append(str(d[record[i][1]])+"님이 나갔습니다.")
    
    return answer

3. 시간복잡도

배열 훑어보기

O(n)O(n)

4. 결과

1회 시도 성공

5. 소요 시간

시작: 21.09.13 11:11

끝: 21.09.13 11:23

📕 피드백

1. 검색한 내용

2. 실수

3. 발전 방향 (개선/추가사항)

굳이 defaultdict를 안 써도 된다.

4. 다른 사람 풀이

풀이1)

  • 접근법

    나와 같음

좋은 웹페이지 즐겨찾기