ALGORITHM
백준 13305 주유소 (Java)
공부하는_다온
2023. 4. 4. 22:40
1. 문제 링크
13305번: 주유소
표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1
www.acmicpc.net
2. 문제 및 입출력예제
3. 문제 풀이
- 일직선 상에 있는 도시를 가는데 최소 주유 비용을 찾는 문제이다.
- 처음에는 해당 숫자가 몇번까지 숫자중에 제일 큰 가격인지 확인하려 했지만.. 숫자가 너무 커서 패스
- 도시를 지나가면서 제일 작은 가격이 나오면 저장하고 거리 길이만큼 곱해서 갔다.
여기서 마지막 도시는 주유하지 않으니까 리터 당 가격을 저장하지 않았다.
4. 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
long[] distance = new long[N-1];
long[] price = new long[N-1];
String[] split = br.readLine().split(" ");
for(int i=0;i<N-1;i++) {
distance[i] = Integer.parseInt(split[i]);
}
split = br.readLine().split(" ");
for(int i=0;i<N-1;i++) {
price[i] = Integer.parseInt(split[i]);
}
long cost = 0;
long min = price[0];
for(int i=0;i<N-1;i++) {
min = Math.min(min, price[i]);
cost += min * distance[i];
}
System.out.println(cost);
}
}