백준(Python) 풀이/그리디 알고리즘

백준(Python) 1434번 책 정리 풀이

개발윗미 2021. 12. 8. 11:05

Python으로 구현한 1434번 책 정리 문제 풀이입니다.

 

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

 

1434번: 책 정리

첫째 줄에 박스의 개수 N, 책의 개수 M이 주어진다. 둘째 줄에는 박스의 용량 A1, A2, ..., AN이 주어지고, 셋째 줄에는 B1, B2, ..., BM이 주어진다.

www.acmicpc.net


n, m = map(int, input().split())
box = list(map(int, input().split()))
book = list(map(int, input().split()))

for i in range(len(book)) :
  for j in range(len(box)) :
    if book[i] > box[j] :
      continue
    box[j] -= book[i]
    break

print(sum(box))

 

1. 박스의 개수와 책의 개수를 각 리스트 형태로 구성하여 저장한다.

 

2. 이중 for문을 통해 현재 확인하고 있는 책의 용량이 현재 확인하고 있는 박스의 용량보다 클 경우 다음 박스를 확인한다.

 

3. 크지 않을 경우 현재의 박스의 값을 현재 책의 용량을 뺀 값으로 갱신한 뒤 내부 반복문을 종료하여 다음 책 용량을 확인한다.

 

4. 반복 수행이 모두 끝나면 box 리스트의 모든 값들의 합을 출력한다.