import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt(); //도시의 개수
long[] cost = new long[N]; //기름 값
long[] length = new long[N-1]; //도시간 길이
for(int i=0; i<N-1; i++){
length[i] = sc.nextLong();
}
for(int i=0; i<N; i++) {
cost[i] = sc.nextLong();
}
long total = 0;
long minCost = cost[0]; //주유 최소 비용
for(int i=0; i<N-1; i++){
if(cost[i] < minCost){
minCost = cost[i]; //가장 낮은 기름값을 갱신해줌
}
total += (minCost * length[i]);
}
System.out.println(total);
}
}
처음에 int 타입으로 했는데 큰수가 들어가면 오버플로우가 나서 58점 밖에 안나왔다.
long타입으로 바꿔서 해결했다.
'코딩테스트' 카테고리의 다른 글
[완전탐색] 백준 2503번 숫자야구 (0) | 2022.10.06 |
---|---|
[완전탐색] 백준 2231번 분해합 (0) | 2022.10.06 |
[그리디] 프로그래머스 체육복 (0) | 2022.10.04 |
[그리디] 백준 11000번 강의실 배정 (0) | 2022.09.26 |
[그리디] 백준 11047번 동전0 (1) | 2022.09.25 |
댓글