문제 : https://www.acmicpc.net/problem/13305
[ 알고리즘풀이 ]
1. 현재 주유소 가격보다 싼 가격의 주유소가 앞으로 있는지 순회합니다.
2. 있다면 그 주유소까지만 현재 주유소에서 기름을 채워서 이동합니다.
3. 없다면 끝까지 현재 주유소에서 기름을 채워서 이동합니다.
#include<iostream>
using namespace std;
int N, length[100000] = {}, price[100000] = {};
int main(void) {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin >> N;
for (int i = 0; i < N - 1; i++)
cin >> length[i];
for (int i = 0; i < N; i++)
cin >> price[i];
long long ans = 0;
int i = 0;
while(i < N){
int j = i + 1;
long long l = 0;
while (j < N) {
l += length[j - 1];
if (price[i] > price[j])
break;
j++;
}
ans += 1LL * l * price[i];
i = j;
}
cout << ans;
}
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ] 17143 : 낚시왕 - travelbeeee (0) | 2020.02.27 |
---|---|
[BOJ] 15683 : 드래곤 커브 - travelbeeee (0) | 2020.02.26 |
[BOJ] 11576 : Base Conversion - travelbeeee (0) | 2020.02.25 |
[BOJ] 15992 : 1, 2, 3 더하기 7 - travelbeeee (0) | 2020.02.24 |
[BOJ] 15991 : 1, 2, 3 더하기 6 - travelbeeee (0) | 2020.02.24 |