Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

전공공부

[BOJ_13305] 주유소 본문

Study/Problem Solving

[BOJ_13305] 주유소

monitor 2024. 4. 1. 18:13

설명


이전의 상태 값을 기억하고 최소한의 값으로 지속적인 탐색을 통해서 값을 구했습니다. O(N)이 걸렸고 정답 값이 오버플로우가 나기 때문에 long으로 설정하는 것이 중요했습니다.

코드


package BOJ.greedy;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class BOJ_13305 {
    public static void main(String[] args) throws Exception{
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer tk = new StringTokenizer(in.readLine()," ");
        int N = Integer.parseInt(tk.nextToken());

        int[] dist = new int[N - 1];
        tk = new StringTokenizer(in.readLine()," ");
        for (int i = 0; i < N - 1; i++){
            dist[i] = Integer.parseInt(tk.nextToken());
        }
        int[] arr = new int[N];
        tk = new StringTokenizer(in.readLine()," ");
        for (int i = 0; i < N; i++){
            arr[i] = Integer.parseInt(tk.nextToken());
        }
        int min = arr[0];
        long ans = 0;
        for (int i = 0; i < N - 1; i++){
            if(arr[i] >= min){
                ans += (long) dist[i] * min;
            }else{
                min = arr[i];
                ans += (long) dist[i] * min;
            }
        }
        System.out.println(ans);
    }
}

 

 

13305번: 주유소

표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1

www.acmicpc.net

 

'Study > Problem Solving' 카테고리의 다른 글

[BOJ_11000] 강의실 배정  (0) 2024.04.07
[BOJ_20365] 블로그2  (0) 2024.04.04
[BOJ_1758] 알바생 강호  (1) 2024.03.29
[BOJ_1343] 폴리오미노  (0) 2024.03.27
[BOJ_2293] 동전1  (0) 2024.03.24