DHistory

[Baekjoon] Greedy - 11256 사탕 본문

Computer Science/Algorithm

[Baekjoon] Greedy - 11256 사탕

ddu0422 2023. 8. 14. 19:18

문제

 

11256번: 사탕

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

www.acmicpc.net

 

풀이

"""
J개의 사탕 상자에 포장
크기가 다른 상자 N개 / 최소한의 상자만 사용 (박스를 다 채울 필요는 없다.)

T: 테스트 케이스 개수
j: 사탕의 개수
n: 상자의 개수
r: 세로 길이, c: 가로 길이
"""
t = int(input())


def solution(j, boxes):
    answer = 0
    boxes = sorted([a * b for a, b in boxes], reverse=True)

    total = 0
    for box in boxes:
        if j <= total:
            break
        total += box
        answer += 1
    
    return answer


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

    print(solution(j, boxes))

 

채점 결과