[ BOJ / Python ] 1756번 피자 굽기

황승환·2022년 8월 2일
0

Python

목록 보기
412/498


이번 문제는 피자의 인덱스와 현재 쌓여있는 인덱스를 관리하며 오븐을 순회하는 방법으로 해결하였다. 우선 오븐 리스트를 순회하며 이전 값과 비교하여 더 작은 값으로 오븐을 갱신해준다. 위에 있는 지름이 더 작으면 밑에 있는 지름이 더 커도 의미가 없기 때문이다. 이 과정이 끝나면 오븐을 밑에서부터 순회한다. 이 과정에서 피자 인덱스가 피자 리스트의 길이보다 크거가 같아지면 그때의 쌓여있는 인덱스+1을 출력하고 프로그램을 종료하도록 하였고, 현재 오븐이 현재 피자의 지름 이상이라면 피자의 인덱스를 증가시키고, 쌓여있는 인덱스를 1 감소시켰다. 이 과정이 끝날 때까지 출력과 프로그램 종료가 없다면 0을 출력한다.

Code

d, n = map(int, input().split())
oven = list(map(int, input().split()))
pizza = list(map(int, input().split()))
idx = d-1
pz_idx = 0
for i in range(1, d):
    oven[i] = min(oven[i], oven[i-1])
for i in range(d-1, -1, -1):
    if pz_idx >= len(pizza):
        print(idx+1)
        quit()
    if oven[i] >= pizza[pz_idx]:
        pz_idx += 1
        idx = i
print(0)

profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기

0개의 댓글