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 |
Tags
- 기러기목
- AI역량평가
- 직박구리과
- 비둘기목
- 계수정렬
- 딥러닝 공부
- 맑은소리 스피치학원
- 참새목
- 한국의 새
- 오리과
- SimpleCraft
- IBK기업은행 인턴
- 가마우지과
- ADsP
- Python
- 한국의새
- 참새과
- 딥러닝공부
- 백로과
- 흰날개해오라기
- 생일문제
- AI전략게임
- django
- Birthday paradox
- 솔딱새과
- keras
- python3
- 딱다구리과
- 비둘기과
- structured_array
Archives
- Today
- Total
진박사의 일상
[프로그래머스] 19 카카오 코테 - 오픈채팅방 본문
문제 : 오픈채팅방의 입출입 및 닉네임 변경 내역을 입력받아 채팅방에 표시되는 로그를 출력하라(단 사용자는 uid로 구별하고... 아몰라 찾아보셈(...)
from collections import defaultdict
def solution(record):
answer = []
messages = defaultdict(list)
index = 0
for r in record:
if len(r.split()) == 3:
command, uid, name = r.split()
else:
command, uid = r.split()
if len(uid) > 10:
continue
if len(name) > 10:
continue
if command == "Enter":
if messages[uid]:
messages[uid] = [[s[0],name,s[2]] for s in messages[uid]] #변경
messages[uid].append([index, name,"님이 들어왔습니다."])
index += 1
elif command == "Leave":
messages[uid].append([index, messages[uid][0][1],"님이 나갔습니다."]) # 아 이걸 놓치네 멍청 ㅠㅠ
index += 1
elif command == "Change":
if messages[uid]: #존재시 변경
messages[uid] = [[s[0],name,s[2]] for s in messages[uid]] #변경
#answer = sum(list(messages.values()),[])
answer = [y for x in list(messages.values()) for y in x]
answer = sorted(answer, key=lambda x: x[0])
answer = [message[1] + message[2] for message in answer]
return answer
후기 : 아 진짜.... ㅠㅠㅠ 딱 하나만 고치면 되는거 가지고 거의 1시간도 넘게 애먹은 듯... Leave 할 때는 명령어에 닉네임 안 넣어주니까 따로 닉네임을 찾아서 지워줘야 하는건데 그걸 안하고 있으니 엉뚱한 닉네임이 퇴장했다고 뜨는거였음... 하 진짜 그것도 모르고 변경하는 부분에서만 에러를 찾아다녔으니 쓰으으으읍.... 오히려 변경 안하는 부분에서 에러가 난 거였음 ㅠㅠ 실제 시험이었으면 이거 하나 해결하고 시험 끝났으려나...
'프로그래밍 > 코딩테스트 공부' 카테고리의 다른 글
[프로그래머스] DFS 문제 - 타겟 넘버 (0) | 2021.09.10 |
---|---|
[프로그래머스] 20년 카카오 코테 - 문자열 압축 (0) | 2021.09.08 |
[프로그래머스] 정렬 문제 - k 번째 수 (0) | 2021.09.08 |
[프로그래머스] 완전 탐색 문제 - 모의 고사 (0) | 2021.09.08 |
[프로그래머스] 위클리 챌린지 6주차 (0) | 2021.09.08 |