내가 생각했을때 문제에서 원하는부분
첫 번째 줄에 가게의 수 N이 주어진다.
두 번째 줄부터 N개의 줄에 걸쳐, 한 줄에 하나씩 현재 위치에서 가게까지 가는 데 걸리는 시간 A와, 현재 시점에서 빵이 들어올 때까지 시간 B가 공백을 사이에 두고 주어진다.
KOI 빵을 살 수 없다면, -1을 출력한다.
KOI 빵을 살 수 있다면, 현재 시점에서 빵을 구하는 데 걸리는 최소 시간을 출력한다.
내가 이 문제를 보고 생각해본 부분
주어진 각 가게에 대해 현재 위치에서 가는 데 걸리는 시간(A)과 빵이 도착할 때까지 남은 시간(B)을 읽는다.
만약 가는 시간 A가 빵 도착 시간 B보다 작거나 같다면 (A ≤ B), 해당 가게에서 빵을 살 수 있으며 이때 빵을 얻는 시간은 B이다.
빵을 살 수 있는 모든 가게들 중에서 빵 도착 시간(B 값)이 가장 작은 값을 찾는다.
만약 빵을 살 수 있는 가게가 하나도 없다면 -1을 출력하고, 그렇지 않다면 찾은 가장 작은 빵 도착 시간(최소 B 값)을 출력해준다.
코드로 구현
package baekjoon.baekjoon_28;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
// 백준 25377번 문제
public class Main1006 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int min = Integer.MAX_VALUE;
while(n-->0) {
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
if(a > b)
continue;
min = Math.min(min, b);
}
System.out.println(min == Integer.MAX_VALUE ? -1 : min);
br.close();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.