문제
https://www.acmicpc.net/problem/11256
풀이
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)
'Koala - 11기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/Python] 19941 햄버거 분배 (0) | 2023.09.03 |
---|---|
[백준/Java] 19941 햄버거 분배 (1) | 2023.09.03 |
[백준/Python] 1461번 : 도서관 (0) | 2023.09.03 |
[백준/python] 20937번: 떡국 (0) | 2023.09.03 |
[백준 / C++] 2872번 우리집엔 도서관이 있어 (0) | 2023.09.03 |