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