728x90
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
2022 KAKAO BLIND RECRUITMENT 신고 결과 받기
✏️ 문제 링크
https://programmers.co.kr/learn/courses/30/lessons/92334
코딩테스트 연습 - 신고 결과 받기
문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의
programmers.co.kr
# 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
#서로다른 유저 신고 가능, 여러번해도 1회 처리
#k번이상 신고유저 메일로 발송, 신고내용 취합해서 메일발송
#출력: 신고처리 완료 메일 받은 횟수 출력
# def solution(id_list, report, k):
# answer = []
# return answer
❓ 정답은 ??
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
def solution(id_list, report, k):
set_report = set(report)
cnt_list = [] # 신고 당한 사람
for i in set_report:
a, b = i.split()
cnt_list.append(b)
val_zero = [0] * len(id_list)
#aa는 신고받은 횟수 딕셔너리
aa = dict(zip(id_list, val_zero))
for i in cnt_list:
if aa[i] == 0: aa[i] = 1
else: aa[i] += 1
singo = [] #k번 이상 정지된
for i in list(aa.keys()):
if aa[i] >= k: singo.append(i)
#bb는 메일받은 횟수 딕셔너리
bb = dict(zip(id_list, val_zero))
for i in set_report:
a, b = i.split()
if b in singo: bb[a] += 1
answer = list(bb.values())
return answer
|
cs |
다른 사람들이 한 코드식이 보니... 와... 컴프리헨션을 이렇게 써야하는구나 깨달은 상황이었다ㅠㅠ
맞다! 이렇게 딕셔너리로 쓸수 있었찌!!! 느꼈ㄸㅏ....
🖱️ 다른 분들의 코드 ??
1
2
3
4
5
6
7
8
9
10
11
12
|
def solution(id_list, report, k):
answer = [0] * len(id_list)
reports = {x : 0 for x in id_list}
for r in set(report):
reports[r.split()[1]] += 1
for r in set(report):
if reports[r.split()[1]] >= k:
answer[id_list.index(r.split()[0])] += 1
return answer
|
cs |
역시나 줄길이부터가 다르다.ㅠㅠㅠㅠ 나도 이렇게 발전 할 수 있겟찌?? 😗
화이팅!!
728x90
'😁 빅데이터 문제 풀기 & Study > - Programmers 문제' 카테고리의 다른 글
[Python] 숫자 문자열과 영단어(2021 카카오 채용연계형 인턴십) (0) | 2022.03.16 |
---|