[python][프로그래머스] 신고 결과 받기
➡️ 문제
https://programmers.co.kr/learn/courses/30/lessons/92334
아이디어 정리
- 유저는 동일한 유저를 한 번씩만 신고할 수 있기 때문에 report 를
set()
으로 변환해준다. - report 를 공백을 구분자로
split
해준다. - 반복문을 돌면서
check
딕셔너리에 어떤 유저가 몇 번 신고당했는지 저장한다. - 반복문을 돌면서 신고한 유저와 신고당한 유저를
lst
딕셔너리에 저장한다. check
딕셔너리를 돌면서 신고당한 횟수가 k 번 이상인 유저들을 체크한다.- 해당 유저를 신고한 유저들이 받아야 할 메시지 개수를 + 1 해준다.
✅ 코드
첫 시도
def solution(id_list, report, k):
answer = [0] * len(id_list)
report = set(report)
lst = {}
check = {}
for s in report:
a, b = s.split(' ')
if b not in check:
check[b] = 1
else:
check[b] += 1
if a not in lst:
lst[a] = [b]
else:
if b not in lst[a]:
lst[a] += [b]
for id_, n in check.items():
if n >= k:
for user, user2 in lst.items():
if id_ in user2:
answer[id_list.index(user)] += 1
return answer
통과하였지만 좀 더 간결하게 만들고 싶다.
Author And Source
이 문제에 관하여([python][프로그래머스] 신고 결과 받기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@chjy0202/python프로그래머스-신고-결과-받기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)