728x90
https://programmers.co.kr/learn/courses/30/lessons/42888?language=python3
코딩테스트 연습 - 오픈채팅방
오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오
programmers.co.kr
def solution(record):
answer = []
answer_tmp = []
user_dict = {}
for r in record:
tmp = r.split()
# answer_tmp = (uid, command)
if r[0] == 'C' or r[0] == 'E':
user_dict[tmp[1]] = tmp[2]
answer_tmp.append((tmp[1], tmp[0]))
# print(user_dict)
# print(answer_tmp)
for uid, command in answer_tmp:
if command[0] == "E":
answer.append('{}님이 들어왔습니다.'.format(user_dict[uid]))
elif command[0] == "L":
answer.append('{}님이 나갔습니다.'.format(user_dict[uid]))
return answer
카카오나 네이버 등 웹 개발자가 있는 곳들은 문자열 처리 문제가 많이 나온다.
언뜻 보기엔 쉬워보이지만 잘못짜는 순간 시간초과가 계속 나서 멘탈이 흔들릴수 있는 문제이다.
이런 문제를 풀땐 중첩 반복문을 최대한 제거하고 해시(딕셔너리)를 사용해서 시간을 줄이는게 좋다.
'STUDY > Algorithm' 카테고리의 다른 글
[프로그래머스] 뉴스 클러스터링, 2018 KAKAO BLIND RECRUITMENT, python (0) | 2021.06.23 |
---|---|
[프로그래머스] 게임 맵 최단 거리, python (0) | 2021.06.22 |
[프로그래머스] 카카오프렌즈 컬러링북, C++ (0) | 2021.06.21 |
[백준] 2671 잠수함 식별 python (3) | 2021.05.30 |
[백준] 2670 연속부분 최대곱 python (0) | 2021.05.30 |