[백준] 주유소 13305번 - Java

GOSHK·2022년 2월 13일
0

[백준] Java

목록 보기
26/49
post-thumbnail

[백준] 주유소 13305번

나의 풀이

public class GasStation {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());

        long[] distance = new long[N - 1];
        StringTokenizer st = new StringTokenizer(br.readLine());
        for(int i = 0; i < N - 1; i++) {
            distance[i] = Integer.parseInt(st.nextToken());
        }

        long[] price = new long[N];
        st = new StringTokenizer(br.readLine());
        for(int i = 0; i < N; i++) {
            price[i] = Integer.parseInt(st.nextToken());
        }

        long lowPrice = price[0];
        long answer = lowPrice * distance[0];

        for(int i = 1; i < N - 1; i++) {
            lowPrice = Math.min(lowPrice, price[i]);
            answer += lowPrice * distance[i];
        }

        System.out.println(answer);
    }
}
  • 문제는 간단하다. 기름의 가격이 더 낮은 도시를 찾으면 해당 기름의 가격으로 계산을 해주면 된다.
  • 처음 도시에서는 무조건 기름을 채우고 가야하기 때문에 우선 계산을 해줬다.
  • 처음 도시는 계산을 이미 했기 때문에 반복문의 인덱스는 1부터로 잡고, 끝은 계산하지 않으니 N - 1로 반복문을 돌리며 계산을 하면 된다.
  • 숫자가 커서 long을 사용해야 100점을 받을 수 있다.

0개의 댓글