CodingTest/Programers

[programers] 프로그래머스(파이썬) : 오픈채팅방

JunJangE 2022. 4. 27. 01:37

문제

 

코딩테스트 연습 - 오픈채팅방

오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오

programmers.co.kr

알고리즘

- 반복문을 통해 입력 값을 확인한다.

- 입력 값의 따라서 uid 값의 닉네임을 추가/변경하고 temp에 상태와 uid 값을 추가한다.

- 반복문을 통해 상태와 uid의 닉네임을 answer에 추가하여 출력한다.

코드

# 01:12 => 01:27

def solution(record):
    answer = []
    temp = []
    uid = {}
    
    # 반복문을 통해 입력 값을 확인
    for i in record:
        i = i.split(" ")
        
        # 입력 값이 Enter일 경우 uid 값의 닉네임 추가, temp에 상태와 uid 값 추가 
        if i[0] == "Enter":
            uid[i[1]] = i[2]
            temp.append([0, i[1]])
        
        # 입력 값이 Leave 경우 temp에 상태와 uid 값 추가
        elif i[0] == "Leave":
            temp.append([1, i[1]])
            
        # 입력 값이 Change일 경우 uid 값의 닉네임 변경
        else:
            uid[i[1]] = i[2]
            
    
    # 반복문을 통해 상태와 uid의 닉네임을 answer에 추가
    for i in temp:
        state, id = i[0], i[1]
        
        if state == 0:
            answer.append(uid[i[1]] + "님이 들어왔습니다.")
        else:
            answer.append(uid[i[1]] + "님이 나갔습니다.")
        
    
    
    return answer

github

 

GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법

내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.

github.com