[JS][백준]1065_한수
Algorithm/BaeKJoon

[JS][백준]1065_한수

문제 번호

 

1065번: 한수

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나

www.acmicpc.net

 

 

알고리즘 분류

 브루트포스

 

문제 풀이

 1이상, N보다 작거나 같은 한수의 개수를 모두 구하는 문제이다.

 

한 자리 수는 모두 한수 이다.

// 한자리 수 는 '한수'이다.
        if (num.length === 0)
            answer++;

 

이후에는 등차가 달라진다면 한수가 아니라고 판단하였다.

 else {
            let difference = Number(num[0]) - Number(num[1]);

            for (let j = 0; j < num.length - 1; j++) {
                if (num[j] - num[j + 1] != difference) {
                    check = false;
                    break;
                }
            }

 

전체 코드

const readline = require('readline');
let rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

let input = [];

rl.on('line', function (line) {
    input.push(line);
});
rl.on('close', function () {
    Solution(input);
});

function Solution(input) {
    let answer = 0;
    let N = Number(input[0]);

    for (let i = 1; i <= N; i++) {
        let num = String(i);        
        let check = true;
        
        // 한자리 수 는 '한수'이다.
        if (num.length === 0)
            answer++;
        
        else {
            let difference = Number(num[0]) - Number(num[1]);

            for (let j = 0; j < num.length - 1; j++) {
                if (num[j] - num[j + 1] != difference) {
                    check = false;
                    break;
                }
            }

            if (check === true)
                answer++;
        }
    }

    console.log(answer);
}

특이사항

 

 

'Algorithm > BaeKJoon' 카테고리의 다른 글

[JS][백준]2675_문자열 반복  (0) 2021.08.05
[JS][백준]10809_알파벳 찾기  (0) 2021.08.05
[JS][백준]4673_셀프 넘버  (0) 2021.08.05
[JS][백준]11720_숫자의 합  (0) 2021.08.02
[JS][백준]1546_평균  (0) 2021.08.02