문제 링크
https://www.acmicpc.net/problem/32953
문제 설명
문제
노교수는 지금까지 서울사이버대학교 빅데이터·정보보호학과와 인공지능학과, 컴퓨터공학과 등에서 N개의 수업을 진행하였다. 수업을 들었던 학생들을 회상하던 어느 날, 노교수는 자신의 수업을 M개 이상 들은 학생이 몇 명인지 궁금해졌다.
수업과 학생의 수가 너무 많아 한눈에 들어오지 않았던 노교수는, 당신에게 분석을 의뢰했다. 각 수업을 들은 학생들의 학번이 주어질 때, 조건을 만족하는 학생의 수를 구하자.
입력
첫 번째 줄에 N, M이 차례대로 주어진다. (1≤N≤100;1≤M≤N)
두 번째 줄부터 2×N개의 줄에 걸쳐 각 수업에 대한 정보 N개가 순서대로 주어진다.
i번 수업의 정보는 두 개의 줄로 이뤄진다. 첫 번째 줄에 과목의 수강생 수 Ki, 두 번째 줄에 i번 수업을 들은 학생들의 학번 Ki개가 공백 하나로 구분되어 주어진다. (1≤Ki≤240)
학번은 숫자 8개로 구성되며, 항상 1로 시작한다. 한 수업에 동일한 사람이 중복되어 있는 경우는 주어지지 않는다.
출력
첫 번째 줄에 M개 이상의 수업을 들은 학생의 수를 출력한다.
입출력 예 설명
입력 1
3 2
3
12500001 12500002 12500003
5
12500001 12500003 12500005 12500007 12500009
4
12500001 12500004 12500007 12500010
출력 1
3
💻내가 짠 코드
N, M = map(int, input().split())
student_count = {}
for _ in range(N):
input()
for student_id in input().split():
student_count[student_id] = student_count.get(student_id, 0) + 1
print(sum(1 for count in student_count.values() if count >= M))
✍ 접근 방법
- 학생 학번을 키(key)로, 수업 참여 횟수를 값(value)으로 저장하는 딕셔너리를 사용
- 학번이 이미 딕셔너리에 있다면 값을 증가시키고, 없으면 초기값을 설정 - student_count.get(student_id, 0)
'Study > Python' 카테고리의 다른 글
[99클럽 코테 스터디] 12일차 TIL - 막대기 (0) | 2025.02.05 |
---|---|
[99클럽 코테 스터디] 11일차 TIL - 스택 (0) | 2025.02.03 |
[99클럽 코테 스터디] 9일차 TIL - 전주 듣고 노래 맞히기 (0) | 2025.01.24 |
[99클럽 코테 스터디] 8일차 TIL - 아 맞다 마늘 (0) | 2025.01.23 |
[99클럽 코테 스터디] 7일차 TIL - Hashing (0) | 2025.01.22 |