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
- 동전교환알고리즘
- 루트사용자
- ChatGPT
- staging_area
- 참조변수타입변환
- 스레드동기화
- 코딩테스트
- Java
- 99클럽
- 날씨API
- API명세서
- Spring
- 스프링
- 제너릭메서드
- 향상된for문
- 파일사용권한
- 프로그래머스
- SQL
- API
- 자바
- 성장형마인드셋
- 4A피드백
- 프로젝트
- 재귀적사고
- 백준
- SQ3R
- string메서드
- 네이티브애플리케이션
- openapi
- 배열탐색
Archives
- Today
- Total
개발 공부용
[백준] 32953 - 회상 본문
문제 출처 : https://www.acmicpc.net/problem/32953
문제
노교수는 N개의 수업을 진행했고 자신의 수업을 M개 이상 들은 학생이 몇 명인지 궁금했다.
수업의 들은 학생들의 학번이 주어질 때 조건을 만족하는 학생의 수를 구하자.
입력
- 첫 번째 줄에 N, M이 차례대로 주어진다.(1<=N<=100;1<=N<=M)
- 두 번째 줄부터 2xN개의 줄에 걸쳐 각 수업에 대한 정보 N개가 순서대로 주어진다.
- 수업의 정보는 두 개의 줄로 이뤄진다.
- - 첫 번째 줄에 과목의 수강생 수.
- - 두 번째 줄에 수업을 들은 학생들의 학번이 공백으로 구분되어 주어진다.
- 학번은 숫자 8개로 구성되며 1로 시작한다. 한 수업에 동일한 학번의 중복은 없다.
출력
- M개 이상의 수업을 들은 학생의 수
풀이 방법
- sys.stdin.readline으로 N, M을 각각 저장한다.
-
N번 for문 돌면서 수업을 들은 학생들의 학번을 모두 리스트에 담는다.
-
학번이 key, 들은 수업의 개수가 value인 딕셔너리를 만든다.
-
value 리스트를 확인해서 M이상인 값이 몇 개 있는지 센다.
-
센 값을 출력한다.
작성한 코드
import sys
N, M = map(int, sys.stdin.readline().strip().split()) #1
students = {}
student_list = []
for i in range(N): #2
student_num = sys.stdin.readline().strip()
student_list += sys.stdin.readline().strip().split()
for student in student_list: #3
if student not in students.keys():
students[student]=1
else:
students[student]+=1
result = 0
for i in students.values(): #4
if(i>=M):
result+=1
print(result) #5
문제 자체는 금방 풀었으나...
이중 for문을 안 쓰고 싶은데 안 쓰고 풀 방법이 쉽게 떠오르지 않았다.☠️
위 코드도 처음에 이중 for문으로 풀었다가 고친건데, 한 10글자만 고치고도 이중 for문을 안 쓸 수 있었다.
😰
점점 나아질거라고 생각한다. 나아지고 있고!
'코딩 테스트 > 99클럽 TIL' 카테고리의 다른 글
[백준] 17608 - 막대기 (0) | 2025.02.05 |
---|---|
[백준] 10828 - 스택 (0) | 2025.02.04 |
[백준] 31562 - 전주 듣고 노래 맞히기 (0) | 2025.01.24 |
[백준] 32978 - 아 맞다 마늘 (2) | 2025.01.23 |
[백준] 15829 - Hashing (0) | 2025.01.22 |