baekjoon/Brute_Force

백준 1065 자바 : 한수

Meluu_ 2023. 11. 9. 01:13

백준 1065번

 

1065번: 한수

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

www.acmicpc.net

문제


 

풀이


 

import java.util.*;
import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringBuilder sb = new StringBuilder(br.readLine());
        
        int x = Integer.parseInt(sb.toString());
        
        if(x < 100) {
            bw.write(sb.toString());
            bw.flush();
            return;
        }

        int[][] arr = new int[x+1][4];
        
        for(int i = 100; i <= x; i++) {
            arr[i][0] =  i / 100;
            arr[i][1] =  (i / 10) % 10;
            arr[i][2] =  (i % 100) % 10;
        }

        int count = 0;
        for(int i = 100; i <= x; i++) {
            if (arr[i][0] - arr[i][1] == arr[i][1] - arr[i][2] )
                count++;
        }

        bw.write((count + 99) + "");
        bw.flush();



    }
}

 

굳이 배열안써도 되는데 생각을 못했다. 간단한 문제인데 너무 오래걸렸다. 수학적 사고능력이 좀 부족한 것 같다.

규칙을 찾을려하다가 시간을 많이 손해봤다. 

 

빠르게 문제의 예제를 확보하고 파악하는게 중요한 것 같다. 

 

여기서 아쉬웠던 점은 100 이상의 수에서 각 자리의 수를 검사할 때 

565 같은 수를 절대값으로 생각해 백의자리 5와 일의 자리 5가 같은 경우는 뺐다는 것이다... 

이건 너무나 큰 실수고 내 실력의 현주소를 보여주었다..

 

더 집중해서 정확한 생각을 하자..