반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- 상한가 이유
- 프로그래머스
- 주식
- 코테
- 경제뉴스
- 경제
- 급등주 분석
- 주식 상한가
- 자바
- 경제뉴스 요약
- 손에 잡히는 경제 요약
- 손경제
- 파이썬
- Python
- 손에 잡히는 경제
- 알고리즘
- 이진우의 손에 잡히는 경제
- Programmers
- 손경제 요약
- 테마주
- java
- 급등주
- 백준
- 코딩테스트
- boj
- 상한가
- 상한가 분석
- 이진우
- 급등 이유
- 주식 분석
Archives
- Today
- Total
Completion over Perfection
프로그래머스 - 신고 결과 받기 (파이썬3 Python3) 본문
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/92334
코드 짜다가 헷갈려서 변수명을 한글로 짰습니다.
한글 변수명은 처음 사용해봤는데 뭔가 오류가 날까봐 걱정됐지만 잘 돌아가네요. :)))))))))))))
문제를 간단히 설명하자면 게시판을 사용하는 유저들간에 서로 신고를 할 수가 있는데
일정횟수 이상 신고를 받은 사람들(불량 이용자)을 추출해내고
이 불량이용자를 신고한 사람들에게 메일을 발송해주는 시스템을 만들어야 합니다.
처리해야되는 로직은 다음과 같습니다.
① 누가 누구를 신고했는지 알아야하고,
② 신고를 받은 불량이용자의 신고받은 횟수가 K를 넘는지 알아내고
③ 만약 K번을 넘게 신고를 받은 사용자라면, 이 불량이용자를 신고한 모든 사람들 리스트를 정리해서
④ 각 사용자별로 불량이용자를 처리했다는 처리완료메일을 몇번이나 받을것인지 알아내야 합니다.
쉽게 이야기 하자면 내가 신고한 사람들이 5명이 있는데, 그 중에서 (다른 사용자들도 신고를 해서) K번 이상 신고를 받은 불량이용자가 2명이 나왔다면, 나는 2번의 처리완료 메일을 받게 되는 것이고 answer 배열에는 2를 넣어서 출력을 해줘야겠죠.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
def solution(id_list, report, k):
# 중복신고 제거
report = list(set(report))
# 신고당한 횟수 저장
신고당한횟수 = {}
# 신고당한 사람들을 신고한 사람 리스트
신고당한사람리스트 = {}
# 신고한 내역 (동일한 사람이 여러번 신고한 경우를 제거하기 위함)
for data in report:
신고한사람 = data.split(" ")[0] # 신고한 사람
신고당한사람 = data.split(" ")[1] # 신고당한 사람
# print("신고한사람 : ", 신고한사람, "신고당한사람 : ", 신고당한사람)
if 신고당한사람 in 신고당한사람리스트:
신고당한사람리스트[신고당한사람].append(신고한사람)
else:
신고당한사람리스트[신고당한사람] = [신고한사람]
if 신고당한사람 in 신고당한횟수:
신고당한횟수[신고당한사람] += 1
else:
신고당한횟수[신고당한사람] = 1
# print("신고당한사람리스트 : ", 신고당한사람리스트)
# print("신고당한횟수 : ", 신고당한횟수, "신고당한사람리스트", 신고당한사람리스트)
# 신고당한 횟수가 k번 이상인 사람들
일정횟수이상신고당한사람 = []
for key, value in 신고당한횟수.items():
if value >= k:
일정횟수이상신고당한사람.append(key)
# print(일정횟수이상신고당한사람)
발송메일횟수 = dict.fromkeys(id_list, 0)
# print(발송메일횟수)
for 신고당한사람 in 일정횟수이상신고당한사람:
# print("신고당한사람 : " , 신고당한사람)
메일발송리스트 = 신고당한사람리스트[신고당한사람]
for 최종발송처 in 메일발송리스트:
발송메일횟수[최종발송처]+=1
# print("발송메일횟수 : ", 발송메일횟수)
answer = []
answer = list(발송메일횟수.values())
return answer
|
cs |
반응형
'파이썬 (Python)' 카테고리의 다른 글
프로그래머스 - x만큼 간격이 있는 n개의 숫자 (파이썬3 Python3) (1) | 2023.08.28 |
---|---|
프로그래머스 - 짝수와 홀수 (파이썬3 Python3) (0) | 2023.08.27 |
프로그래머스 - 연속된 수의 합 (파이썬3 Python3) (0) | 2023.08.25 |
프로그래머스 - 안전지대 (파이썬3 Python3) (0) | 2023.08.21 |
프로그래머스 - 무인도 여행 (파이썬3 Python3) (0) | 2023.08.20 |
Comments