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
- 백트래킹
- 파이썬
- sort
- DFS
- 덩치
- 소트
- 월간 코드 챌린지 시즌2
- 백준
- 그리디
- 스택
- 코딩테스트
- 최단거리
- Backtracking
- 다익스트라
- 404에러
- 최빈값
- 퇴각검색
- 동적계획법
- 브루트포스
- 정렬
- 동적
- 통계학
- 스프링
- 그리디알고리즘
- 스프링프레임워크
- 2중포문
- 코테
- Python
- 소트인사이드
- 프로그래머스
Archives
- Today
- Total
취준생의 코딩테스트 연습기
[프로그래머스] 오픈채팅방 / 파이썬(python) 본문
# 문제 링크
programmers.co.kr/learn/courses/30/lessons/42888
# 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