반응형

www.acmicpc.net/problem/13305

 

13305번: 주유소

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

www.acmicpc.net

 

1. 현재 도시의 가격(price[i])와 현재 최솟값(min) 비교

  -> 현재 도시의 가격이 더 싸면 min = price[i]

 

2. 계산은 무조건 해야함

  -> total_price = min * dist[i]

 

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
#include <iostream>
#define ll long long
using namespace std;
ll dist[100000];
ll price[100000];
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
 
    int n;
    cin >> n;
    for (int i = 0; i < n-1; i++)
        cin >> dist[i];
 
    for (int i = 0; i < n; i++)
        cin >> price[i];
 
    int minIdx = 0;
    ll min = price[0];
 
    ll total_price = 0;
    for (int i = 0; i < n; i++) {
        if (price[i] < min) 
            min = price[i];
        total_price += min * dist[i];
    }
    cout << total_price;
}
cs
반응형

'백준 > 그리디' 카테고리의 다른 글

백준 1715  (0) 2021.02.05
백준 1080  (0) 2021.02.05
백준 1946  (0) 2021.02.05
백준 2812  (0) 2021.02.04
백준 11509  (0) 2021.01.26

+ Recent posts