사용 언어 - Python3
문제 - 신고 결과 받기
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
정답
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
[파이썬 기초] 유사 딕셔너리 defaultdict() 활용법
defaultdict()는 딕셔너리를 만드는 dict클래스의 서브클래스이다. 작동하는 방식은 거의 동일한데, defaultdict()는 인자로 주어진 객체(default-factory)의 기본값을 딕셔너리값의 초깃값으로 지정할 수 있
dongdongfather.tistory.com
- 정답 깃허브
GitHub - yyeongeun/codingtest: 코딩테스트 공부
코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.
github.com
'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 |
댓글