취준생의 코딩테스트 연습기

[프로그래머스] 오픈채팅방 / 파이썬(python) 본문

코딩테스트/프로그래머스

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

Jiwon_C 2021. 5. 13. 22:43

# 문제 링크

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

 

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

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

programmers.co.kr

# Soultion

처음에 15줄에서 2중 for문을 사용했더니 시간초과 문제가 발생하여 1중 for문으로 변경해주었다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def solution(record):
    answer = []
    user = {}
    for i in record:
        rec = list(map(str,i.split()))
        if rec[0]=='Enter':
            user[rec[1]] = rec[2#id, nickname
            answer.append([rec[1],'님이 들어왔습니다.'])
        elif rec[0]=='Leave':
            answer.append([rec[1],'님이 나갔습니다.'])
        else#change
            user[rec[1]] = rec[2]
    
    ch_answer = []
    for s in answer:
        ch_answer.append(user[s[0]]+s[1])
        
    
    return ch_answer
cs
 

2.  id와 입출입여부를 저장할 리스트

3. 채팅방에 들어온 id와 nickname을 저장할 map

6. 입력이 Enter이면, 들어온 id와 닉네임을 저장한다.

11. 닉네임을 변경했으면, user에 저장되어있는 id를 이용하여 새로운 nickname으로 저장

14. 최종적으로 출력할 정답

15. user에 저장되어있는 정보를 이용하여 id를 nickname으로 변경

Comments