C++로 PS를 풀다가 지쳐, Python으로 풀면서 환기시켜보려고 한다. 그 첫문제는 난이도 1짜리 문제.
https://programmers.co.kr/learn/courses/30/lessons/92334
너무 문제 그대로 받아드렸다.
신고자 : 대상 1, 대상 2 | 신고자2 : 대상 2 ....
이런 형태가 아닌
대상 1 : 신고자1, 신고자2 | 대상 2 : 신고자 1 ...
이런식으로 하면 코드도 간단해지고, 중복 문제도 자연스럽게 벗어나게 된다.
def solution(id_list, report, k):
#
# 1. 빈칸으로 단어 구분
# 2. 딕셔너리 배열
# 주어진 조건에 따라 한 유저가 같은 유저를 여러 번 신고한 경우는 신고 횟수 1회로 처리합니다.
id_report = {id: [] for id in id_list}
answer = [0] * len(id_list)
for r in set(report):
tmp=r.split()
id_report[tmp[1]].append(tmp[0])
for key, val in id_report.items():
if len(val) >= k:
for v in val:
answer[id_list.index(v)] += 1
return answer
728x90