본문 바로가기

하루하나코딩

백준 13305 : 주유소 c++

코드

#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점이 나오니까 이 점을 주의해야 한다!

'하루하나코딩' 카테고리의 다른 글

백준 16637 : 괄호 추가하기 c++  (0) 2023.02.01
백준 1328 : 고층 빌딩 c++  (0) 2023.01.31
백준 11399 : ATM c++  (0) 2023.01.29
백준 2302 : 극장 좌석 c++  (0) 2023.01.28
백준 2631 : 줄 세우기 c++  (0) 2023.01.27