[백준] 12018 - Yonsei TOTO / Python / 실버 3

KimYoungWoong·2022년 10월 22일
0

BOJ

목록 보기
16/31
post-thumbnail

🚩문제 주소


📄풀이


각 과목의 마일리지를 내림차순으로 정렬합니다.
마일리지의 수가 l 보다 작다면 temp 배열에 1을 저장하고, 아니라면 l-1 번째 마일리지를 배열에 저장합니다.

저장된 배열을 오름차순으로 정렬합니다.

배열의 원소를 반복해서 저장하고 카운트를 1씩 늘려가다가 합이 m 보다 커진다면 반복을 멈추고 카운트에서 1를 빼준후, 카운트를 출력합니다.



👨‍💻코드


n, m = map(int, input().split())
temp = []
Sum ,answer = 0, 0

for _ in range(n):
  p, l = map(int, input().split())
  mList = list(map(int, input().split()))
  mList.sort(reverse=True)
  
  if len(mList) < l:
    temp.append(1)
  else:
    temp.append(mList[l-1])

temp.sort()

for t in temp:
  Sum += t
  answer += 1

  if Sum > m:
    answer -= 1
    break

print(answer)

profile
블로그 이전했습니다!! https://highero.tistory.com

0개의 댓글