JavsScript 백준 1065번 한수

🔥 1065번 한수

한수


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

const Hansu = (n) => {
  if (n < 100) {
    return true;
  }
  const s = String(n);
  return (+s[0] - +s[1] === +s[1] = +s[2]);
}

const N = Number(input);
let result = 0;
for (let i = 1; i <= N; i++) {
  if (Hansu(i)) {
      result++;
  }
}

console.log(result);

🧵 풀이

화살표 함수를 사용해서 Hansu(n)을 생성한다. 이 때 자연수 n이 99 이하일 경우에는
모두 각 자리가 등차수열을 이루는 한수라고 할 수 있다.

그렇기에 n 이 100미만인 경우에는 true를 return 받는다.
100이상인 경우 (3자리 숫자)에는 idex값을 찾을 수 있는 String으로
n을 감싼 s 를 만들어주고 1번째자리 - 2번째자리의 값과 2번째 자리 - 1번째 자리의 값이
동일하다면 true를 return해준다.

Hansu(n)함수를 완성하고 다시 밑으로 내려가 result값을 0으로 지정해주고
for 문을 이용하여 Hansu(i)를 실행해준다 이때 return받은 값이 true라면
result에 +1 을 해준다.

✨n이 99이하 일 경우에는 모두 한수라는 점과 3자리수 일 경우에 1번자리와 - 2번자리의 값과
2번자리 - 3번자리의 값이 동일한 경우에는 한수라는 것을 생각하여 푼 방식이다..


틀린부분이나 부족한 부분이 있다면 말씀해주십쇼😮

좋은 웹페이지 즐겨찾기