반응형
내풀이
const fs = require('fs');
let input = (fs.readFileSync('./dev/stdin') + '').toString().trim();
const lenInput = input.length;
let cnt = 0;
// 1 2 3
// 10-1 100-10 + 120-(100-1)
for (let i = 1; i <= lenInput; i++) {
if (i === lenInput) {
let curCnt = (parseInt(input) - (10 ** (i - 1) - 1)) * i;
cnt += curCnt;
} else {
let curCnt = (10 ** i - 10 ** (i - 1)) * i;
cnt += curCnt;
}
}
console.log(cnt);
자릿수별로 생각해보다가 공식으로 해결이 되는 문제 같아서 공식을 이용해 풀이
다른 풀이
let cnt = 0;
for (let i = 1; i <= N; i *= 10) {
cnt += N - i + 1;
}
console.log(cnt);
하.. 한줄에 끝나는구나...
애초에 for문을 돌 때 i+1 이아니라 i*10을 해주면 되는것이었다...
🥳 혼자 잘 풀어서 기뻤지만 살짝 허망한 것.... 그래도 좋다!
'🔑 알고리즘 > 백준 JS' 카테고리의 다른 글
[백준] node.js/ 1463_1로 만들기 (2) | 2021.10.27 |
---|---|
백준] node.js/ 1448_ 삼각형 만들기 (0) | 2021.10.23 |
[백준] node.js/ 15650 N과M(2) (0) | 2021.10.21 |
[백준] node.js/ 15649 N과 M 1 (0) | 2021.10.20 |
[백준] node.js/ 1302 베스트셀러 (0) | 2021.10.19 |
댓글