Koala - 11기/코딩테스트 준비 스터디

[백준/python] 11256번 사탕

알 수 없는 사용자 2023. 9. 4. 04:54

문제

https://www.acmicpc.net/problem/11256

 

11256번: 사탕

당신은 사탕 공장의 주인이다. 날마다, 당신은 J개의 사탕을 가게에 보내기 위해 상자에 포장해야 한다. 당신은 크기가 다른 상자 N개를 가지고 있다. 당신은 편리를 위해 상자를 최소한으로 쓰

www.acmicpc.net

풀이

1. 상자의 세로 길이와 상자의 가로 길이를 입력받음 -> 각각 a와 b에 할당

2. a * b를 data 리스트에 추가 -> 내림차순으로 정렬(상자의 개수를 최소한으로 구해야하기에)

3. 반복문 통해 data 리스트의 값 하나씩 확인 -> 사탕의 개수 - 현재 확인하고 있는 상자의 크기 -> result 1증가시킴

4. 만약 사탕의 개수가 0이하일 경우 더 이상 상자에 넣을 사탕이 없으므로 반복문을 종료

5. result 값 출력

 

소스코드

t = int(input())
for _ in range(t) :
  j, n = map(int, input().split())

  data = []
  for _ in range(n) :
    a, b = map(int, input().split())
    data.append(a*b)

  data.sort(reverse=True)
  result = 0
  for i in range(len(data)) :
    j -= data[i]
    result += 1
    if j <= 0 :
      break

  print(result)