728x90
https://programmers.co.kr/learn/courses/30/lessons/42888?language=python3
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 |