하루하나코딩
백준 13305 : 주유소 c++
HAHAKO
2023. 1. 30. 12:33
코드
#include <iostream>
using namespace std;
int main(){
int N;
cin >> N;
long long distance[100001];
long long oilprice[100001];
long long min;
for(int i = 1; i < N; i++){
cin >> distance[i];
}
for(int i = 0; i < N; i++){
cin >> oilprice[i];
}
min = oilprice[0];
long long ans = min * distance[1];
for(int i = 2; i < N; i++){
if(min < oilprice[i-1]) ans += min*distance[i];
else{
min = oilprice[i-1];
ans += min*distance[i];
}
}
cout << ans;
return 0;
}
알게된 점
그냥 간단하게 최소값을 갱신해주면서 풀면되는 간단한 그리디문제다.
다만 숫자범위를 잘 확인해서 int인지 long long인지 확인해야한다.
int로 하면 점수가 58점이 나오니까 이 점을 주의해야 한다!