티스토리 뷰
25번부터 32번까지 시간초과난 코드. 아마 2중 포문을 사용해서 시간초과가 난 것같다.
def solution(record):
#딕셔너리를 사용하여 Enter Change 일때 그에 맞는 닉네임으로 해시의 값을 바꾸면 됩니다
answer = []
res = []
for i in record:
temp = i.split()
res.append(temp)
for i in range(len(res)):
for j in range(0, i):
if res[i][1] == res[j][1]:
if res[i][0] == 'Change' or res[i][0] == 'Enter':
res[j][2] = res[i][2]
else: #Leave
res[i].append(res[j][2])
for i in range(len(res)):
if res[i][0] == 'Enter':
answer.append(res[i][2]+"님이 들어왔습니다.")
elif res[i][0] == 'Leave':
answer.append(res[i][2]+"님이 나갔습니다.")
return answer
그래서 딕셔너리를 이용하여 풀었다!
Enter와 Change일 때 닉네임 값이 들어오므로 Leave일 때는 신경쓰지 않는다.
Enter와 Change이라면 해당 아이디를 딕셔너리의 key로 갖고 value를 닉네임으로 지정해준다. -> 이미 해당 값이 있더라도 뒤에들어오는 닉네임값으로 변경해준다.
또 다시 for문을 돌면서 enter와 leave일 때 answer에 -님이 들어왔습니다, 나갔습니다 라는 문자열로 append 시켜준다.
def solution(record):
answer = []
res = {}
for i in record:
temp = i.split()
if temp[0] == 'Enter' or temp[0] =='Change':
res[temp[1]] = temp[2] #아이디를 키로 가지고있는 딕셔너리를 닉네임으로 바꾼다.
for i in record:
temp = i.split()
if temp[0] == 'Enter':
answer.append(res[temp[1]]+"님이 들어왔습니다.")
elif temp[0] =='Leave':
answer.append(res[temp[1]]+"님이 나갔습니다.")
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 상호평가 - 파이썬 (0) | 2021.08.12 |
---|---|
[프로그래머스] 프린터 - 파이썬 (0) | 2021.08.10 |
[프로그래머스] 부족한 금액 계산하기 - 파이썬 (0) | 2021.08.05 |
[프로그래머스] 체육복 - 파이썬 (0) | 2021.07.19 |
[프로그래머스] K번째수 - 파이썬 (0) | 2021.07.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- vue.js
- vue
- SSAFY
- 배포
- 독학
- DOM
- 자바
- 프로그래머스
- git
- SSAFY퇴소
- splide
- Java
- 위클리챌린지2주차
- SWEA
- 알고리즘
- 안드로이드스튜디오
- 백준
- N과M
- 파이썬
- 비동기패턴
- AWS
- django
- Pyhton
- 트리
- SQL
- javascript
- Python
- commit되돌리기
- 세션 스토리지
- 싸피
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함