[Java] 백준 1065번: 한수

U·2023년 2월 17일

백준

목록 보기
1/116

💻 문제


일단 이해하자🤔

  • 세자리 정수에서의 한수는 알겠는데 두자리 그리고 한자리의 정수들도 한수일까 하는 의문이 들었다.
  • 2번 예제에서 1이 입력되었다. 이는 1보다 크거나 같고, 1보다 작거나 같은 즉 1이 한수로 인정되는지를 알려준다. 이때 한수의 개수가 1개이므로 1은 한수이다.
  • 때문에 한자리 정수들과 두자리 정수들 모두 한수로 이해하여 풀었더니 맞았다😄

① 세자리 정수는 각 자리가 등차수열을 이룰때
② 한자리 정수와 두자리 정수는 모두
③ 1000은 한수가 아니므로 제외


👀 풀이

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bfw = new BufferedWriter(new OutputStreamWriter(System.out));

        int N = Integer.parseInt(bfr.readLine());


        bfw.write(String.valueOf(hansu(N)));

        bfr.close();
        bfw.flush();
        bfw.close();
    }

    static int hansu(int N) {

        int count = 0;

        for(int i = 1; i <= N; i++) {
            if(i < 1000 && i >= 100) {
                if((i / 100) - (i % 100 / 10) == (i % 100 / 10) - (i % 100 % 10)) {
                    count++;
                }
            }
            else if(i < 100) {
                count++;
            }
        }

        return count;
    }
}

아쉬웠던 점••

  • 세자리 정수일때의 조건이 조금 지저분해 보인다. 코드를 더 깔끔하게 짤 수 있을까?
profile
백엔드 개발자 연습생

0개의 댓글