본문 바로가기
코딩테스트

[백준] 1756번 '피자 굽기' - Java

by CuckooBird 2023. 7. 27.

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

 

1756번: 피자 굽기

월드피자 원주 지점에서 N개의 피자 반죽을 오븐에 넣고 구우려고 한다. 그런데, 월드피자에서 만드는 피자 반죽은 지름이 제각각이다. 그런가하면, 월드피자에서 사용하는 오븐의 모양도 몹시

www.acmicpc.net


문제


코드

import java.io.*;
import java.util.*;

public class Main {
	private static final BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
	private static final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
	
	public static void main(String[] args) throws IOException {
		StringTokenizer st = new StringTokenizer(bf.readLine());
		int d = Integer.parseInt(st.nextToken());
		int n = Integer.parseInt(st.nextToken());
		
		int[] oven = new int[d];
		int[] pizza = new int[n];
		
		st = new StringTokenizer(bf.readLine());
		for(int i = 0 ; i < d ; i++) {
			oven[i] = Integer.parseInt(st.nextToken());
			if(i > 0 && oven[i-1] <= oven[i]) oven[i] = oven[i-1];
		}
		
		st = new StringTokenizer(bf.readLine());
		for(int i = 0 ; i < n ; i++) {
			pizza[i] = Integer.parseInt(st.nextToken());
		}
		
		int ans = 0;
		int cnt = 0;
		for(int i = d-1 ; i >= 0; i--) {
			if(oven[i] >= pizza[cnt]) {
				cnt++;
			}
			if(cnt == n) {
				ans = i + 1;
				break;
			}
		}
		
		bw.write(Integer.toString(ans));
		
		bf.close();
		bw.flush();
		bw.close();
	}
}

원래 이렇게 생긴 오븐을

이렇게 나타내서 구했습니다. 이렇게 나타내야 for문 하나로 구현이 가능합니다.