주유소13305

LJM·2023년 7월 18일
0

백준풀기

목록 보기
184/259

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

현재 가격보다 다음이 낮으면 현재 필요한것만큼 구매
현재 가격보다 다음이 높으면 낮은거 찾을때까지 구매

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

public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(br.readLine());

        long[] roadlen = new long[n-1];
        String[] input = br.readLine().split(" ");
        for (int i = 0; i < n-1; i++) {
            roadlen[i] = Integer.parseInt(input[i]);
        }

        input = br.readLine().split(" ");
        long[] price = new long[n];
        for (int i = 0; i < n; i++) {
            price[i] = Integer.parseInt(input[i]);
        }

        long answer = 0;
        for (int i = 0; i < n-1; i++) {
            if(price[i] < price[i+1]){
                //낮은거 나올때까지
                int next = i+1;
                while(true){

                    answer += price[i]*roadlen[next-1];
                    next++;

                    if(next >= n){
                        i = next;
                        break;
                    }

                    if(price[i] > price[next]){
                        answer += price[i]*roadlen[next-1];
                        i = next-1;
                        break;
                    }

                }

            }else{
                answer += (price[i] * roadlen[i]);
            }
        }

        System.out.println(answer);
    }
}
profile
게임개발자 백엔드개발자

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

항상 좋은 글 감사합니다.

답글 달기

관련 채용 정보