백준 1756 피자 / python

이유참치·2025년 7월 31일

백준

목록 보기
26/248

문제 : 1756

풀이 point

도우가 내려올 때 그 도우만큼 오븐의 크기가 충분히 커야지 밑으로 내려갈 수 있다. 이점을 잘 생각해보면 밑에 오븐은 아무리 커도 위에 오븐 크기보다 큰 도우를 맞이할 수 없다.

그래서 오븐의 크기를 재정의 해볼 수 있다. 예를 들어 예제 입력 1
5 6 4 3 6 2 3
5 5 4 3 3 2 2로 변경할 수 있다.

두번재 6은 첫번째 오븐 크기 5보다 크기 때문에 어차피 밑으로 5이상 크기의 도우가 내려갈 수 없다. 그러므로 5로 갱신한다. 다음 다다음도 마찬가지이다.

풀이 방법

오븐 크기를 재정의 한뒤 반죽을 넣어보면 된다.
오븐의 끝 부터 도우를 하나씩 채워나가면 된다.(오븐 리스트를 역순회해서 도우를 하나씩 집어넣어보기)

코드

#백준 1756, 피자

D, N = map(int, input().split())

depth = list(map(int, input().split()))
pizza = list(map(int, input().split()))

for i in range(D-1):
    if depth[i] < depth[i+1]:
        depth[i+1] = depth[i]

idx = 0
for i in range(D-1, -1, -1):
    if pizza[idx] <= depth[i]:
        idx += 1

    if idx == N:
        print(i+1) 
        break

else: print(0)

2025-07-09T15:32:00.483Z

profile
임아리 - 대학생

0개의 댓글