[javascript] 백준 13305번 주유소

bjyyyyy·2022년 12월 22일
0

문제보기

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 변수의 재할당은 해주지 않는다

0개의 댓글