const fs = require("fs");
const input = parseInt(fs.readFileSync(0).toString().trim());
if (input < 100) {
console.log(input);
} else {
let cnt = 99;
for (let i = 100; i <= input; i++) {
let first = parseInt(i / 100);
let second = parseInt((i / 10) % 10);
let third = parseInt(i % 10);
if (first - second === second - third) {
cnt++;
}
}
console.log(cnt);
}
- 100미만의 숫자는 모두 한수이므로 전달받은 파라미터를 바로 출력한다.
- 100이상의 숫자는 모두 99개의 한수를 가진 상태에서 반복문의 시작 숫자를 100부터 전달 받은 파라미터까지 반복한다.
- 반복문 내부에서 백의자리~일의자리를 얻기위해 코드를 작성.(1000보다 작거나 같은 수 이므로 1000의 자리 숫자는 제외)
- 조건문으로 위에 노트에 작성했던 조건을 그대로 적고 내부에는 cnt++ 코드를 작성해 조건에 맞는 숫자를 만날 때마다 카운트를 더함.
알고리즘 문제를 처음 풀면서 느꼈던 생각은 수학적인 사고를 잘 해야겠다는 생각이 들었다.
내가 말하는 수학적인 사고라는 것은 문제의 조건들과 규칙들을 어떻게 수식화 할 것 인지 생각하는 것이다.
그리고 꾸준히 자료구조를 공부하며 문제도 함께 풀어야겠다고 생각했다...