백준 알고리즘 / 6.함수

dudgus5766·2021년 7월 27일
1

알고리즘

목록 보기
8/15
post-thumbnail

1065번

문제 : https://www.acmicpc.net/problem/1065

풀이

/*
문제 : 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 

입력 : 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.

출력 : 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.
*/

// 답안

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().trim().split(' ');

let num = Number(input);

// let num = Number(1000);

function hansooCheck(num){
    let hansoo = 0;
    for(let i=1; i <= num; i++){
        if(i < 100){
            hansoo ++;
        }else{
            const numArr = i.toString().split('').map(num => +num);
            console.log(numArr);
            if(numArr[0] - numArr[1] === numArr[1] - numArr[2]){
                hansoo ++;
            }
        }
    }
    console.log(hansoo);
}

hansooCheck(num);

💡 마치며

한수라는 개념을 이해하지 못해서 애를 먹은 문제..
예제 입력과 출력을 보면 100보다 작은 숫자는 모두 한수였다. 그렇다면 100보다 크고 1000보다 작은 숫자 내에서 [0] - [1] === [1] - [2] 이 성립하면 한수가 된다.

profile
RN App Developer

0개의 댓글