업데이트:

🔍 문제


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

⚪ 입력


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

⚪ 출력


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

📝 정답 코드

const fs = require('fs')
let input = fs.readFileSync('/dev/stdin');

let count = 0

function d(data){
  const str = data.toString()
  const arr = Array.from(str)
  if(data<100 | arr[2]-arr[1] == arr[1]-arr[0]){
  return true
}
}

  for (let i=1; i<=input; ++i){
    if (d(i)){
      count++;
    }
  }
  console.log(count)

CODE REVIEW 💻


💡 등차수열

  • 대표 점화식 : F(n) = F(n-1) + a

👩🏻‍🏫 코드 설명

입력이 1000보다 작거나 같은 자연수이다. 100보다 작은 수는 무조건 등차수열이다.

우리는 100보다 크고 1000보다 작은 자연수 중 각 자리수가 등차수열을 이루는 숫자를 찾아주면 된다.

함수 d(data)에서 100보다 작은 수는 모두 등차수열로 치고 true를 반환하였다.

또한 100보다 크고 1000보다 작은 수 중에서 arr[1]-arr[0]과 arr[2]-arr[1]이 같으면, 즉 위 점화식에서 a가 같으면 true를 반환했다.

true일 때 count를 증가시키고 console.log(count)를 해주면 끝!

댓글남기기