신고 결과 받기
https://school.programmers.co.kr/learn/courses/30/lessons/92334
def solution(id_list, report, k):
# 중복되는 신고는 하나만 반영하기 위해 집합으로 변환 후, 다시 리스트로 변환
report = list(set(report))
# 해당 user가 누구를 신고했는지에 대한 report_dict
report_dict = {user: [] for user in id_list}
# 해당 user가 몇번 신고당했는지 저장하는 report_cnt
report_cnt = {user: 0 for user in id_list}
우선 두개의 딕셔너리가 필요하다고 생각했다.
- 내가 누구를 신고했는지 리스트 형태로 받는 딕셔너리 -> report_dict
- 내가 몇 번 신고당했는지 저장하는 딕셔너리 -> report_cnt
for r in report:
reporter, target = r.split()
# 신고자는 key, 신고당한 사람은 해당 키의 value 리스트에 추가
report_dict[reporter].append(target)
# 신고당한 사람의 value에 +1
report_cnt[target] += 1
신고한 사람, 당한 사람을 받아 각각의 딕셔너리에 넣어줌.
report_dict에는 신고한 사람(reporter)을 key로, 당한사람(target)을 value 리스트에 추가.
report_cnt에는 당한 사람(target)의 value인 횟수에 +1.
# 반환할 정답 answer 리스트 생성
answer = []
for i in id_list:
# msg_cnt 초기화
msg_cnt = 0
# 신고당한 사람의 report_cnt를 체크
for j in report_dict[i]:
# k번 이상이라면 msg_cnt 1 증가
if report_cnt[j] >= k:
msg_cnt += 1
answer.append(msg_cnt)
우선 msg_cnt를 초기화. 여기에 내가 받을 메시지의 수를 저장.
id_list를 돌면서 내가 신고한 사람들을 차례로 확인.
그 사람이 k번 이상 신고당했다면 내 msg_cnt에 +1
총 msg_cnt를 answers에 저장하면 끝.
이를 반복해주면 된다.
def solution(id_list, report, k):
# 중복되는 신고는 하나만 반영하기 위해 집합으로 변환 후, 다시 리스트로 변환
report = list(set(report))
# 해당 user가 누구를 신고했는지에 대한 report_dict
report_dict = {user: [] for user in id_list}
# 해당 user가 몇번 신고당했는지 저장하는 report_cnt
report_cnt = {user: 0 for user in id_list}
for r in report:
reporter, target = r.split()
# 신고자는 key, 신고당한 사람은 해당 키의 value 리스트에 추가
report_dict[reporter].append(target)
# 신고당한 사람의 value에 +1
report_cnt[target] += 1
# 반환할 정답 answer 리스트 생성
answer = []
for i in id_list:
# msg_cnt 초기화
msg_cnt = 0
# 신고당한 사람의 report_cnt를 체크
for j in report_dict[i]:
# k번 이상이라면 msg_cnt 1 증가
if report_cnt[j] >= k:
msg_cnt += 1
answer.append(msg_cnt)
return answer
최종 코드
SQL 1주차 과제
문제 : 상품 준비시간이 20~30분 사이인, 한국음식점의 식당명과 고객번호 조회하기
가져올 컬럼 : 식당명, 고객번호
어떤 테이블로부터 : food_orders
조건 : 상품 준비시간이 20 ~ 30분 사이 그리고 한국 음식점
select restaurant_name, customer_id
from food_orders
where food_preparation_time BETWEEN 20 and 30 and cuisine_type = 'Korean'
오늘의 회고
코드카타가 점점 힘들어진다. 오늘은 시간도 없어서 아침에 다 끝내지 못함.
그래도 오후에 골든벨하면서 환기도 되고 재미있었다.
SQL 이제 시작이다. 1주차 수업은 아는 내용을 주로 다루다보니 쉽게 느껴졌다. 근데 방심하면 안됨.
SQL은 어어 하다가 갑자기 복잡해진다. 탄탄하게 공부하자.
내일의 목표는 코드카타 + SQL 2주차 마무리 + CS 2회차 공부하기
'매일 TIL' 카테고리의 다른 글
[내일배움캠프 7-1일] 피보나치 수, SQL 3주차 (0) | 2024.08.05 |
---|---|
[내일배움캠프 6-5일] 최댓값과 최솟값, SQL 2주차 (0) | 2024.08.02 |
[내일배움캠프 6-2일] 코드카타, RVC 음성합성 AI(1) (0) | 2024.07.30 |
[내일배움캠프 6-1일] 코드카타, 프로토콜, TCP/IP 4계층 (0) | 2024.07.29 |
[내일배움캠프 5-5일] 코드카타, 객체지향 프로그래밍, SW 개발 방법론 (0) | 2024.07.26 |