13305번 : 주유소 [Java]

2021. 4. 12. 23:05Algorithm/백준

반응형

https://www.acmicpc.net/problem/13305

 

13305번: 주유소

표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1

www.acmicpc.net

해결 방안

새로 간 곳의 리터당 가격이 더 싸다면 최소 비용을 갱신해준다. 주유소의 리터당 가격이 나온다면 그 가격에 이동거리를 곱해 전체 가격에 더해나간다.

 

주의할 점

숫자가 매우 커질 수 있기 때문에 데이터 타입을 주의하자,,, int가 아니라 long...

 

전체 코드

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt(); 
        
		long[] road = new long[N - 1];
		for (int i = 0; i < N - 1; i++)
			road[i] = sc.nextInt();

		long[] cost = new long[N];
		for (int i = 0; i < N; i++)
			cost[i] = sc.nextInt();

		long minCost = cost[0];
		long sumCost = 0;
		for (int i = 0; i < N - 1; i++) {
			if (cost[i] < minCost) { 
				minCost = cost[i];
			}

			sumCost += road[i] * minCost;
		}

		System.out.println(sumCost);
	}
}

 

반응형

'Algorithm > 백준' 카테고리의 다른 글

1806번 : 부분합 [Java]  (0) 2021.04.20
1644번 : 소수의 연속합 [Java]  (0) 2021.04.20
1987번 : 알파벳 [Java]  (0) 2021.04.11
5014번 : 스타트링크 [Java]  (0) 2021.04.11
2251번 : 물통 [Java]  (0) 2021.04.09