Problem
https://www.acmicpc.net/problem/13305
13305번: 주유소
표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1
www.acmicpc.net
Solution
#include<iostream>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
long long dist[100001]; // 도로의 길이
long long price[100001]; // 주유소 기름 가격
int n; // 도시의 개수
long long total; // 총 비용 = 정답값
long long min_price; // 최소 비용
cin >> n;
// dist 입력 받기
for(int i=0;i<n-1;i++){
cin >> dist[i];
}
// price 입력 받기
for(int i=0;i<n;i++){
cin >> price[i];
}
total += dist[0] * price[0]; // 필수 요건
min_price = price[0]; // 최솟값 초기화
for(int i=1;i<n-1;i++){
if (min_price>price[i]){
min_price = price[i];
total += min_price * dist[i];
} else {
total += min_price * dist[i];
}
}
cout << total << '\n';
return 0;
}
Reference
https://wooono.tistory.com/431
[Greedy] 백준 13305번 "주유소" C++ 풀이
문제 링크 https://www.acmicpc.net/problem/13305 풀이 예제 그림 문제는, 현재 도시의 주유 가격이 다음 도시의 주유 가격보다 비싼지, 저렴한지에 따라 나뉘게 됩니다. 현재 주유소보다 다음 주유소가 싸
wooono.tistory.com
'코딩 테스트 > 백준 (C++, Python)' 카테고리의 다른 글
cpp) 백준 1874: 스택 수열 (2) | 2023.06.29 |
---|---|
cpp) 백준 2805: 나무 자르기 (0) | 2023.06.27 |
cpp) 백준 1764: 듣보잡 (0) | 2023.06.25 |
cpp) 백준 10816: 숫자 카드 2 (2) | 2023.06.17 |
cpp) 백준 1920: 수 찾기 (0) | 2023.06.15 |