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
- pandas profiling
- eda
- 딥러닝
- 웨어하우스 보관 최적화
- MS SQL Server
- Inventory Optimization
- 피그마인디언
- SKU Consolidation
- ProfileReport
- 파이썬
- tensorflow
- ABC Analysis
- Labor Management System
- 데이터분석
- TensorFlowGPU
- MySQL
- 당신의 인생이 왜 힘들지 않아야 한다고 생각하십니까
- 프로그래머스
- leetcode
- SQL
- 코딩테스트
- 신경쓰기의 기술
- Gaimification
- 코딩테스트연습
- kaggle
- HackerRank
- ModelCheckPoint
- Product Demand
- oracle
- forecast
Archives
- Today
- Total
오늘도 배운다
신고 결과 받기 / 프로그래머스, 파이썬 코딩테스트 연습2022 KAKAO BLIND RECRUITMENT 본문
코딩테스트연습(파이썬)
신고 결과 받기 / 프로그래머스, 파이썬 코딩테스트 연습2022 KAKAO BLIND RECRUITMENT
LearnerToRunner 2022. 11. 24. 21:28문제
이용자의 ID가 담긴 문자열 배열 id_list, 각 이용자가 신고한 이용자의 ID 정보가 담긴 문자열 배열 report, 정지 기준이 되는 신고 횟수 k가 매개변수로 주어질 때, 각 유저별로 처리 결과 메일을 받은 횟수를 배열에 담아 return 하도록 solution 함수를 완성해주세요.


제출답안
def solution(id_list, report, k):
# 중복이 없는 신고목록
report_no_dupe = set(report)
# 신고당한 아이디 목록
reported_id = [repo.split()[1] for repo in report_no_dupe]
# 경고 수를 초과한 아이디 목록
banned_id = [id for id in set(reported_id) if reported_id.count(id) >= k]
log = {}
# 각 키에 값을 0으로 설정
for id in id_list:
log[id] = 0
# 중복없는 레포트를 다시 검토
for repo in report_no_dupe:
# 신고한 사람, 신고 당한사람
reporting, reported = repo.split()
# 신고내역에서 신고당한 사람이 경고유저일 경우 신고한사람의 키값 +=1
log[reporting]+=1 if reported in banned_id else 0
answer = list(log.values())
return answer
제출 후 개선답안
딕셔너리도 컴프리헨션 문법을 사용할 수 있음을 배움
log 부분 3줄을 한 줄로 줄임
def solution(id_list, report, k):
# 중복이 없는 신고목록
report_no_dupe = set(report)
# 신고당한 아이디 목록
reported_id = [repo.split()[1] for repo in report_no_dupe]
# 경고 수를 초과한 아이디 목록
banned_id = [id for id in set(reported_id) if reported_id.count(id) >= k]
# 받을 메일 카운트용 딕셔너리 생성
log = {id: 0 for id in id_list}
print(log)
# 중복없는 레포트를 다시 검토
for repo in report_no_dupe:
# 신고한 사람, 신고 당한사람
reporting, reported = repo.split()
# 신고내역에서 신고당한 사람이 경고유저일 경우 신고한사람의 키값 +=1
log[reporting]+=1 if reported in banned_id else 0
answer = list(log.values())
return answer
문제 바로가기
728x90
'코딩테스트연습(파이썬)' 카테고리의 다른 글
| 문자열 내림차순으로 배치하기 / 프로그래머스, 파이썬 코딩테스트 연습 연습문제 (0) | 2022.11.28 |
|---|---|
| 부족한 금액 계산하기 / 프로그래머스, 파이썬 코딩테스트 연습위클리 챌린지 (0) | 2022.11.28 |
| 아이스 아메리카노 / 프로그래머스, 파이썬 코딩테스트 연습코딩테스트 입문 (0) | 2022.11.23 |
| 각도기 / 프로그래머스, 파이썬 코딩테스트 연습 코딩테스트 입문 (0) | 2022.11.22 |
| 같은 숫자는 싫어 / 프로그래머스, 파이썬 코딩테스트 연습스택/큐 (0) | 2022.11.21 |
Comments