백준 단계별로 풀어보기 [그리디 알고리즘] 주유소
https://www.acmicpc.net/problem/13305
[풀이]
가격이 가장 작은 주유소의 기름 최소값과 도로 거리를 곱할 수 있도록 비교해가며 min값을 설정한다.
[코드]
#include <iostream>
#include <algorithm>
long long road[100000];
long long price[100000];
int main() {
//주유소의 기름 가격과 각 도시를 연결하는 도로 길이를 입력, 최소의 비용 계산
using namespace std;
long long n;
cin >> n;
//n-1개의 도로 길이 입력
for (int i = 0; i < n - 1; i++) {
cin >> road[i];
}
//n개의 리터당 가격 입력
for (int i = 0; i < n; i++) {
cin >> price[i];
}
long long total = 0, min = 1000000001;
for (int i = 0; i < n; i++) {
if (price[i] < min)
min = price[i];
total += min * road[i];
}
cout << total;
}
'알고리즘 공부 및 문제 풀이 > 백준(BOJ)' 카테고리의 다른 글
[c++] 백준 14425 문자열 집합 (0) | 2021.08.20 |
---|---|
[c++] 백준 14725 개미굴 (0) | 2021.08.17 |
[c++] 백준 11286 절댓값 힙 (0) | 2021.08.07 |
[c++] 백준 11279, 1927 최대 힙, 최소 힙 (0) | 2021.08.07 |
[c++] 백준 1018 체스판 다시 칠하기 (0) | 2021.08.06 |