Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 그리디알고리즘
- 소트
- 최빈값
- 통계학
- 코테
- 정렬
- 소트인사이드
- 덩치
- 2중포문
- 스택
- 프로그래머스
- 동적
- 백준
- DFS
- 동적계획법
- 스프링프레임워크
- 그리디
- 다익스트라
- 404에러
- 퇴각검색
- Backtracking
- 스프링
- sort
- 파이썬
- 코딩테스트
- Python
- 최단거리
- 월간 코드 챌린지 시즌2
- 브루트포스
- 백트래킹
Archives
- Today
- Total
취준생의 코딩테스트 연습기
[프로그래머스] 오픈채팅방 / 파이썬(python) 본문
# 문제 링크
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으로 변경
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 직사각형 별찍기 / 파이썬(python) (0) | 2021.05.21 |
---|---|
[프로그래머스] 휴대폰 번호 가리기 / 파이썬(python) (0) | 2021.05.21 |
[프로그래머스] 음양 더하기 / 파이썬(python) (0) | 2021.05.01 |
[프로그래머스] 괄호 회전하기 / 파이썬(python) (0) | 2021.04.19 |
[프로그래머스] 가장 큰 수 / 파이썬(python) (0) | 2021.04.02 |
Comments