https://programmers.co.kr/learn/courses/30/lessons/92334
입출력 예시
id_list | report | k | result |
["muzi", "frodo", "apeach", "neo"] |
["muzi frodo","apeach frodo","frodo neo","muzi neo","apeach muzi"] |
2 | [2,1,1,0] |
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
def solution(id_list, report, k):
result, answer, rep = [], [], []
report = set(report)
report = sorted(list(report))
count={}
for i in report:
i = i.split()[1]
try : count[i] +=1
except : count[i]=1
for key, val in count.items():
if val>=k:
rep.append(key)
for i in report:
if i.split()[1] in rep:
result.append(i.split()[0])
for i in range(len(id_list)):
answer.append(result.count(id_list[i]))
return answer
|
cs |
설명
1. report는 "신고자 대상자" (ex. "muzi frodo") 로 이루어진다. 중복을 제거해줘야 하기 때문에 set(report) 후 다시 list로 전환한다.
2. count 딕셔너리는 각 사용자가 신고 당한 횟수를 기록한다.
3. 이 중 신고 당한 횟수가 k 이상이면, rep 에 추가한다.
4. result는 메일을 받게 될 대상자(k번 이상 신고당한 사용자를 신고한 유저)를 기록한다.
5. 최종적으로 id_list를 돌면서, result에 사용자의 이름이 몇 번 (메일 보내는 횟수) 있는지 확인한다.
'python, pyTorch > 코딩테스트-파이썬' 카테고리의 다른 글
BOJ 연속합, 동전1 (0) | 2022.02.13 |
---|---|
BOJ 이동하기 (0) | 2022.02.13 |
BOJ 설탕배달, 정수삼각형 (0) | 2022.02.13 |
BOJ 가장긴증가하는부분수열, RGB거리 (0) | 2022.02.12 |
프로그래머스 Lv1. 다트게임 (0) | 2022.02.12 |