사용 언어 - Python3
문제 - 신고 결과 받기
정답
defaultdict 이용한 딕셔너리 구현 (정답 맞춘 여부 X)
user = {신고한 사람 : 신고 받은 사람들}
cnt = {신고 받은 사람 : 신고 받은 횟수}
딕셔너리로 저장
id_list 별로 한개씩 확인,
user 딕셔너리에서 id 확인해 신고받은 사람들의 신고횟수가 k이상인 경우, result += 1
# defaultdict = dict 입력형식 지정 set or int
from collections import defaultdict
def solution(id_list,report,k):
answer = []
report = list(set(report)) #report 중복제거
user = defaultdict(set) #신고한 id : 신고받은 id
cnt = defaultdict(int) #신고한 사람별 신고 횟수
for r in report:
a,b = r.split() #신고 한 사람, 신고 받은 사람
user[a].add(b) # {신고한 사람 : 신고 받은 사람들}
cnt[b] += 1 # {신고받은 사람 : 신고 받은 횟수}
for i in id_list:
result = 0
for u in user[i]: #id별
if cnt[u] >= k: #id별 신고횟수 조사
result += 1
answer.append(result)
return answer
레퍼런스
- from collections import defaultdict
- 정답 깃허브
'Algorithm > 구현' 카테고리의 다른 글
[프로그래머스 lv 1] 개인정보 수집 유효기간 (1) | 2023.05.16 |
---|---|
[프로그래머스 lv 1] 나머지가 1이 되는 수 찾기 (0) | 2023.05.16 |
[프로그래머스 lv 1] 성격 유형 검사 (1) | 2023.05.12 |
[프로그래머스 lv 1] 숫자 짝꿍 (0) | 2023.05.12 |
[프로그래머스 lv1] 콜라 문제 (0) | 2023.05.11 |
댓글