[JavaScript] 1065 | 백준

유인학·2022년 5월 21일
0

[JS] Algorithm(백준)

목록 보기
45/82
post-thumbnail

📄 문제

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

⌨ 예제 입력 1

110

📺 예제 출력 1

99

⌨ 예제 입력 2

210

📺 예제 출력 2

105

🚩solution

일단 두 자릿수까지는 모두 등차수열에 만족하니까 100보다 작으면 카운트해주자.
그다음 1,000보다 작거나 같은 값까지만 입력되니 세 자릿수만 고려해주면 된다.
그중에서 등차수열을 만족하는 값만 카운트해주자.

const input = require('fs').readFileSync('/dev/stdin').toString().trim();
const number = Number(input);
let sum = 0;

for (i = 1; i <= number; i++) {
  if (i < 100) {
    sum++;
  } else if (i < 1000) {
    const arr = String(i)
      .split('')
      .map((value) => Number(value));
    const [a, b] = [arr[1] - arr[0], arr[2] - arr[1]];
    a === b ? sum++ : null;
  }
}

console.log(sum);
profile
'유'발자!

0개의 댓글