https://school.programmers.co.kr/learn/courses/30/lessons/92334?language=python3
TC 만 맞고 나머지 다 틀림. [해결]
'''
dict1 val 이 신고한 ID
ID 를 key, 신고한 ID VALUE
dict2 val 이 cnt
ID를 key, val = 0 으로 초기화
dict1 에서 value값인 유저가 신고한 아이디를 key로 갖는 idx의 원소값 ++
id_list 탐색하면서, 해당 id_list 원소를 key로 갖는 dict1의 value를 인덱스를 갖는 dict2 cnt가
2개 이상이면
dict3 [key]++
dict3의 value를 result에 append
dict 3개 필요
dict1 : report 용도
dic2 id_list cnt용도
dict3 은 cnt가 2개인 경우들을 찾아 vlaue에 +1 하는 용도
'''
#dict1 에서 value 중복 허용안키.
def solution(id_list, report, k):
answer = []
dict1 = dict()
for x in report:
lst = x.split(" ") # 하나의 딕셔너리 키의 value값 중복막아야함
dict1.setdefault(lst[0],[]).append(lst[1])
# #https://stackoverflow.com/questions/20585920/how-to-add-multiple-values-to-a-dictionary-key
for x in dict1: # 중복 제거.
dict1[x] = set(dict1[x])
dict2 = dict()
dict3 = dict()
for x in id_list:
dict2[x] = 0
dict3 = dict2.copy() # dict2,3 초기화
'''
dict 1에 값들을 dict2에 key로 활용하여 해당 key 값에 +=1 을 하기
'''
for x in dict1:
for y in dict1[x]:
dict2[y]+=1
#dict3 은 cnt가 2개인 경우들을 찾아 vlaue에 +1 하는 용도
#dict1의 원소 value들을 key로 하는 dict2 의 원소 값이 2이상인 경우
#dict3의 key값을 dict1 key로 하는 값에 ++
for x in dict1:
for y in dict1[x]:
if dict2[y]>=k: # if dict2[y]>=2 로해서 오답나왔던거임
dict3[x]+=1
#https://codechacha.com/ko/python-convert-dict-to-list/
answer = list(dict3.values())#dict ->list 변환
return answer
cnt 가 k개 임 근데 적은건 2를 적어서 틀렸을거임( if dict2[y]>=k: # if dict2[y]>=2 로해서 오답나왔던거임)
재작성
설계는 거의 동일함. (코드 간략화)
def solution(id_list, report, k):
answer = []
#신고당한 횟수 dict1 , 초기화
dict1= dict()
for x in id_list:
dict1[x]=0
dict2 = dict1.copy()
report = set(report) # 중복제거
report = list(report)
for x in report:
lst = x.split(" ") # 0 : 신고한 사람 , 1: 신고당한사람.
dict1[lst[1]]+=1 # 신고 당한 횟수 counting
#report 탐색,신고당한 사람의 dict1 이 k값이상이면, dict2 에 ++
for y in report: #report 는 중복제거됨 set으로
lst = y.split(" ")
if dict1[lst[1]]>=k: # lst[0]: 신고한자 , list[1] : 신고당한자
dict2[lst[0]]+=1
answer= list(dict2.values())
return answer'코딩테스트 > 나혼자코테(나코테)' 카테고리의 다른 글
| 2022 KAKAO TECH INTERNSHIP성격 유형 검사하기 (lv1) (0) | 2022.10.29 |
|---|---|
| 16926번 배열 돌리기1[다시!] (0) | 2022.09.17 |
| 이코테) 개미전사 (0) | 2022.08.25 |