let input = fs.readFileSync(filePath).toString().trim().split("\n");
const cities = input[0];
let distance = input[1].split(" ").map((item) => BigInt(item));
let value = input[2].split(" ").map((item) => BigInt(item));
let result = 0n;
let current = value[0];
for (let i = 0; i < cities; i++) {
let next = value[i + 1]; // 다음 도시의 가격
if (next && next < current) {
result += current * distance[i];
current = next;
continue;
}
if (next && next >= current) {
result += current * distance[i];
}
}
console.log(String(result));
풀이
입력으로 들어오는 숫자가 크기때문에 BigInt 자료형을 필수적으로 사용해야한다.
현재 도시의 가격보다 다음 도시의 가격이 더 낮으면 현재 도시의 가격 * 다음 도시와의 거리만 구해주고
기준이되는 current 변수에 다음 도시의 가격을 재할당 해준다.
다음 도시의 가격이 더 높거나 같으면 기준이 되는 current에 거리만 곱해주고 current 변수의 재할당은 해주지 않는다