전공/백준
12018
yha97
2022. 12. 2. 21:43
날짜 : 2022. 12. 02
사용 언어 : python
문제
코드
import sys
n, m = map(int, sys.stdin.readline().split())
my = list()
for i in range(n):
p, l = map(int, sys.stdin.readline().split()) # 신청인원, 수강인원
stu = list(map(int, sys.stdin.readline().split())) # 신청한 학생의 마일리지
stu.sort(reverse=True) # 수강인원 마일리지 내림차순 정렬
if p < l : # 신청 인원이 수강인원보다 적은 경우(마일리지는 1만 해도 가능)
my.append(1)
continue
else:
my.append(stu[l-1]) # 막차(같은경우 우선권 보유)
my.sort()
cnt = 0 # 들을 수 있는 과목의 수
for i in my:
m -= i
if m >= 0:
cnt += 1
else:
break
print(cnt)
풀이
- 예시, 주석 참고
알게된 점
- 마지막에 마일리지가 남는 경우를 출력하지 않아 계속 틀렸다고 나왔다.
- for문을 다 끝내거나 break으로 탈출한 이후에 output을 출력하지 않아서 이런 결과가 나왔다.
참고 사이트
-