[BOJ] 1065번 - 한수

이수현·2022년 5월 21일
0

BOJ

목록 보기
1/4

📝1065번 - 한수

제출 코드

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);
}

접근방식

  1. 100미만의 숫자는 모두 한수이므로 전달받은 파라미터를 바로 출력한다.
  2. 100이상의 숫자는 모두 99개의 한수를 가진 상태에서 반복문의 시작 숫자를 100부터 전달 받은 파라미터까지 반복한다.
  3. 반복문 내부에서 백의자리~일의자리를 얻기위해 코드를 작성.(1000보다 작거나 같은 수 이므로 1000의 자리 숫자는 제외)
  4. 조건문으로 위에 노트에 작성했던 조건을 그대로 적고 내부에는 cnt++ 코드를 작성해 조건에 맞는 숫자를 만날 때마다 카운트를 더함.

느낀점

알고리즘 문제를 처음 풀면서 느꼈던 생각은 수학적인 사고를 잘 해야겠다는 생각이 들었다.
내가 말하는 수학적인 사고라는 것은 문제의 조건들과 규칙들을 어떻게 수식화 할 것 인지 생각하는 것이다.
그리고 꾸준히 자료구조를 공부하며 문제도 함께 풀어야겠다고 생각했다...

0개의 댓글