백준 1065 자바스크립트(함수)
함수(1065)
문제
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
출력
첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.
예제
입력 - 출력 110 - 99 1 - 1 210 - 105 1000 - 144
한번에 정답입니다가 뜨면 정말 기분이 좋다 ㅎㅎㅎ
한수 : 어떤 양의 정수 X의 각 자리가 등차수열을 이루는 수
2자리 수 이하의 수는 모두 한수로 친다 따라서 1000 이하의 수만 계산하기 때문에 세자리 수만 한수인지 판별하면 된다.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdin
});
let input = [];
rl.on('line', function (line){
input.push(line);
}).on('close',function (){
let N = input[0];
let count = 0;
for (let i = 1; i<=N; i++){
if (i<100){
count ++;
}
else if (i >= 100 && Math.floor(i/100) - Math.floor(Math.floor(i/10)%10) === Math.floor(Math.floor(i/10)%10) - Math.floor(i%10) ){
count++;
}
}
console.log(count)
process.exit();
});
계산식을 더 정리할 수 있을거 같은데 더 고민해봐야 겠다.