Develop/백준 코딩테스트

백준 코딩테스트 13305 자바스크립트 node.js

codeGray 2022. 7. 5. 17:08
반응형

 

정답

let [count, ...arr] = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
count = Number(count);
sol(count, arr);

function sol(count, arr){
    let distance = arr[0].split(' ').map(i => BigInt(i));
    let citys = arr[1].split(' ').map(i => BigInt(i));
    let result = 0n;
    let price = citys[0];
    for(let i=0; i < count-1; i++){
        result += distance[i] * price;
        if(price > citys[i+1]){
            price = citys[i+1];
        }
    }
    console.log(result.toString());
}

 

풀이

현재 도시의 기름값 보다 한칸 앞에있는 도시의 기름값이 더 싸면 기름값을 더 싼 것으로 변경해준다.

이것을 반복하면 된다.

(최초의 기름값은 무조건 지불해서 거리를 가야한다.)

BigInt를 쓰지않으면 58점이 나온다.

Number로 커버 가능한 숫자인데 왜 그런지 모르겠다.

반응형