코딩코딩

[프로그래머스] level2 - 오픈채팅방 : 파이썬(Python) 풀이

Jerry Jun 2021. 7. 3. 16:03
728x90

문제

프로그래머스 - 오픈채팅방(문제)

 

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

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

programmers.co.kr

 

코드

def solution(record):
    user_id = dict()
    seq = []
    ment = []

    for i in record:
        step = i.split()
        if step[0] == 'Enter':
            user_id[step[1]] = step[2]
            seq.append(step[1])
            ment.append("님이 들어왔습니다.")

        elif step[0] == 'Leave':
            seq.append(step[1])
            ment.append("님이 나갔습니다.")

        else:
            user_id[step[1]] = step[2]
            
    answer = [user_id[seq[i]] + ment[i] for i in range(len(seq))]
    return answer

 

풀이

복잡한 알고리즘을 생각하지 않아도 되는 힐링 문제다.

간단한 문제라고 생각한다.

Enter, Leave, Change 에 따라서 각자 다른 동작을 하면된다.

주의해야 할 사항은 Enter 와 Change 를 할 때 이전 로그에서 이름을 모두 바꿔야 한다는 것이다.

이 문제에 대해서는 딕셔너리를 이용해 key = user_id, value = 이름으로 활용하여 해결했다.

 

"님이 들어왔습니다.", "님이 나갔습니다." 에 대해서는 순서 그대로 출력하면 되니 배열에 추가했다.

 

인증사진
프로그래머스 표지

300x250