DecordRay

[프로그래머스] Level2 : 오픈채팅방[Python] 본문

알고리즘/프로그래머스

[프로그래머스] Level2 : 오픈채팅방[Python]

DecordRay 2023. 1. 23. 15:52
728x90
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이 :

문자열을 활용한 구현 문제

 

1. userid에 해당하는 nickname을 저장하기 위한 딕셔너리 생성

첫번째 for 문

2. Enter일때 userid에 해당하는 nickname을 dic[userid]에 저장

3. Change일때 userid에 해당하는 nickname을 dic[userid]에 저장(최신화)

두번째 for 문

4. Enter일때와 Leave일때만 해당하는 userid의 nickname으로 명령어 수행

 

코드 :

def solution(record):
    answer = []
    dic = dict()
    # Enter일때 dic에 userid에 해당하는 nickname 넣어주기
    # Change일때 dic에 userid에 해당하는 nickname 변경해주기
    for i in range(len(record)):
        order = record[i].split()[0]
        if order == 'Enter':
            dic[record[i].split()[1]] = record[i].split()[2]
        elif order == "Change":
            dic[record[i].split()[1]] = record[i].split()[2]

    # Enter일때와 Leave일때만 해당하는 userid의 nickname으로 명령어 수행
    for i in range(len(record)):
        order = record[i].split()[0]
        id = record[i].split()[1]
        if order == 'Enter':
            answer.append(f"{dic[id]}님이 들어왔습니다.")
        elif order == "Leave":
            answer.append(f"{dic[id]}님이 나갔습니다.")

    return answer

 

728x90
반응형
Comments