[백준/Python] 1756번 - 피자 굽기

Sujin Lee·2022년 11월 5일
0

코딩테스트

목록 보기
159/172
post-thumbnail

문제

백준 1756번 - 피자 굽기

해결 과정

  1. oven 재정의
  • 오븐 위에서부터 아래로 확인한다.
  • 현재 관의 지름이 이전 관의 지름보다 크다하더라도 이전 관의 지름만큼의 반죽만 들어간다.
  • 현재 관의 지름 > 이전 관의 지름이라면 현재 관의 지름 = 이전 관의 지름
  1. 오븐에 반죽 넣기
  • 가장 깊숙한 부분(밑)에서부터 확인하며 반죽을 넣는다.
  • 관의 지름이 반죽보다 작다면 반죽을 넣을 수 있는 것 = flag에 1을 더함
  • 만약 flag가 반죽의 개수와 같다면 다 넣은 것이므로 현재 위치와 break
  1. 오븐에 모든 반죽이 안들어갔다면
  • flag와 반죽의 개수가 다른 것
  • print(0)

시행착오

  • 걍 이상함 비슷한데 잘못풀었음
import sys
d, n = map(int,sys.stdin.readline().split())

oven = list(map(int,sys.stdin.readline().split()))
dough = list(map(int,sys.stdin.readline().split()))

answer = 0
now = d-1
flag = 0

for j in dough:
  for i in range(now,-1,-1):
    if j < oven[i]:
      answer = i
      now = i-1
      flag += 1
      break
    
if flag != n:      
  print(0)
else: 
  print(answer+1)

풀이

import sys
d, n = map(int,sys.stdin.readline().split())

oven = list(map(int,sys.stdin.readline().split()))
dough = list(map(int,sys.stdin.readline().split()))

# 오븐의 길이에 따라 들어갈 수 있는 반죽의 크기
# [5, 5, 4, 3, 3, 2, 2]
for i in range(1,d):
  if oven[i] > oven[i-1]:
    oven[i] = oven[i-1]

flag = 0
for i in range(d-1, -1, -1):
  if dough[flag] <= oven[i]:    
    flag += 1

  if flag == n:
    print(i+1)
    break

if flag != n:
  print(0)
profile
공부한 내용을 기록하는 공간입니다. 📝

0개의 댓글