728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제는 여기서 확인할 수 있다.
def solution(id_list, report, k):
answer = [0 for _ in id_list]
dic = {id: [] for id in id_list}
enum = {id: idx for idx, id in enumerate(id_list)}
#중복 신고 제거
report = list(set(report))
# 회원별 신고한 id 딕셔너리 만들기
for element in report:
temp = element.split()
dic[temp[1]].append(temp[0])
#정지시킨 애들 메일발송
for idx, id in enumerate(id_list):
if len(dic[id]) >= k:
for j in dic[id]:
answer[enum[j]] += 1
return answer
신고받은 id -> 정지시킬 id -> 신고한 id 이 흐름을 따라갈 때 이미 사용한 데이터를 재사용시키는 것이 어려웠다.
처음에는 딕셔너리 대신 3중 for문을 써서 풀었는데, 문제가 풀리긴 했지만 시간이 오래 걸려서 마음에 들지 않았다.
공간복잡도의 제약도 없고 해서 딕셔너리 마구 만들어서 풀었다.ㅋㅋㅋ
728x90
'프로그래머스' 카테고리의 다른 글
[Lv.1][python] 같은 숫자는 싫어 (0) | 2022.08.07 |
---|---|
[Lv.1][python] 크레인 인형 뽑기 게임 (0) | 2022.08.07 |
오픈채팅방 (0) | 2022.07.01 |
문자열 압축 (0) | 2022.07.01 |
키패드 누르기 (0) | 2022.06.23 |