2025. 1. 24. 17:03ㆍ코테 스터디(Python)
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
예제 입력 2
3 2
3
12599999 12599998 12599997
1
12599996
2
12599995 12599994
예제 출력 2
0
풀이
1. 첫 줄에 진행한 수업의 개수 N과 M( 자신의 수업을 M개 이상 들은 학생이 궁금하기 때문에 )을 받아온다.
N, M = map(int, input().split())
2. 학번 별로 수업 횟수 값을 저장하기 위해 딕셔너리를 만든다.
student_count = {}
3. N번 반복하여 수업을 들은 학생의 숫자(K)를 받아오고 학번을 받아와서 리스트로 student_ids에 저장한다.
for _ in range(N):
K = int(input())
student_ids = list(map(int, input().split()))
4. student_ids를 돌아가며 student_count 안에 해당 학번이 있으면 학번 value값에 +1 을 해주고 없으면 value값을 1로 넣어준다.
for i in student_ids:
if i in student_count:
student_count[i] += 1
else:
student_count[i] = 1
5. 수업을 M개 이상 들은 학생수를 넣을 변수를 작성해준다.
total_count = 0 ##처음에는 0명
6. student_count 딕셔너리에서 학생마다 수업을 들은 횟수 (value) 확인 해준다.
for count in student_count.values():
7. 조건문을 통해 M개 이상 들은 학생이 있으면 total_count에 +1 해준다.
if count >= M:
total_count += 1
8. M개 이상 수업을 들은 학생 수 출력!
print(total_count)
제출코드
N, M = map(int, input().split())
student_count = {}
for _ in range(N):
K = int(input())
student_ids = list(map(int, input().split()))
for i in student_ids:
if i in student_count:
student_count[i] += 1
else:
student_count[i] = 1
total_count = 0
for count in student_count.values():
if count >= M:
total_count += 1
print(total_count)
중간에 엄청난 틀렸습니다를 겪었지만 입력값을 제대로 받지 못해서 계속 실패가 뜨는거였다..ㅠ
두번째, 세 번째줄 입력값을 한줄에 다 받아버리는 실수..
'코테 스터디(Python)' 카테고리의 다른 글
12일차 - 막대기 ( 백준 - 17608번 ) (0) | 2025.02.04 |
---|---|
11일차 - 스택 ( 백준 10828번 ) (0) | 2025.02.03 |
9일차 - 전주 듣고 노래 맞히기 ( 백준 - 31562번 ) (0) | 2025.01.23 |
8일차 - 아 맞다 마늘 ( 백준 32978번 ) (0) | 2025.01.22 |
7일차 - Hashing ( 백준 - 15829번 ) (0) | 2025.01.21 |