문제풀이/백준oj
[백준OJ] 13305번 주유소
Hyeon-Uk
2021. 7. 31. 20:03
반응형
https://www.acmicpc.net/problem/13305
13305번: 주유소
표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1
www.acmicpc.net
-풀이-
싼 가격의 도시를 만날때까지 현재까지 만나왔던 도시중 가장 싼 값의 기름을 이용하여 도로를 주행한다. 더 값싼 도시를 만난다면, 가장 싼 값의 기름을 갱신시켜준뒤, 도로를 주행하면된다.
-시간복잡도-
O(N)
-코드-
#include <iostream>
#include<algorithm>
using namespace std;
int road[1000001] = { 0 };
int n;
long long min_cost = 1000000001;
long long result = 0;
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> n;
for (int i = 0; i < n - 1; i++) {
cin >> road[i];
}
for (int i = 0; i < n; i++) {
long long city;
cin >> city;
min_cost = min(min_cost, city);
result += min_cost * road[i];
}
cout << result;
return 0;
}
반응형