πŸ—οΈ Algorithm/🟩 λ°±μ€€

🟩 [λ°±μ€€] [Java] [Silver5] 4673번_μ…€ν”„ λ„˜λ²„

Dbswnstjd 2023. 12. 7. 21:14

문제

https://www.acmicpc.net/problem/4673

 

4673번: μ…€ν”„ λ„˜λ²„

μ…€ν”„ λ„˜λ²„λŠ” 1949λ…„ 인도 μˆ˜ν•™μž D.R. Kaprekarκ°€ 이름 λΆ™μ˜€λ‹€. μ–‘μ˜ μ •μˆ˜ n에 λŒ€ν•΄μ„œ d(n)을 nκ³Ό n의 각 자리수λ₯Ό λ”ν•˜λŠ” ν•¨μˆ˜λΌκ³  μ •μ˜ν•˜μž. 예λ₯Ό λ“€μ–΄, d(75) = 75+7+5 = 87이닀. μ–‘μ˜ μ •μˆ˜ n이 μ£Όμ–΄μ‘Œμ„ λ•Œ,

www.acmicpc.net

풀이

public class μ…€ν”„λ„˜λ²„ {
    public static void main(String[] args) {
        boolean[] check = new boolean[10001];	

        for (int i = 1; i < 10001; i++){
            int n = d(i);

            if(n < 10001){	
                check[n] = true;
            }
        }

        StringBuilder sb = new StringBuilder();

        for (int i = 1; i < 10001; i++) {
            if (!check[i]) {	
                sb.append(i).append('\n');
            }
        }
        System.out.println(sb);
    }

    public static int d(int number){
        int sum = number;
        while (number != 0) {
            sum = sum + (number % 10);
            number = number / 10;
        }

        return sum;
    }
}

 

μžλ°”λ‘œ μ½”λ”©ν…ŒμŠ€νŠΈλ₯Ό λ‹€μ‹œ μ‹œμž‘ν•˜κ²Œ λ˜μ—ˆλŠ”λ° μžλ°”μ—μ„œ μ‚¬μš©ν•΄λ³΄μ§€ μ•Šμ€ 것듀을 μ‚¬μš©ν•˜λ‹€λ³΄λ‹ˆ μ‰¬μš΄ λ¬Έμ œλ“€λ„ κ½€ μ‹œκ°„μ΄ κ±Έλ Έλ‹€. 

 

λ¬Έμ œκ°€ μ–΄λ €μš΄ 것 κ°™μ§€λ§Œ μƒμ„±μžκ°€ μ—†λŠ” μ…€ν”„ λ„˜λ²„λ§Œ 찾으면 λœλ‹€. 

d(1) = 1 + 1 = 2,

d(2) = 2 + 2 = 4,

d(3) = 3 + 3 = 6 ...

즉 μ…€ν”„ λ„˜λ²„κ°€ μ•„λ‹Œ μˆ˜λ“€μ„ 배열에 λ„£κ³  μ…€ν”„ λ„˜λ²„λ₯Ό 좜λ ₯ν•˜λ©΄ λœλ‹€.

check[2] = true, check[4] = true, check[6] = true ..  μ΄λ ‡κ²Œ λ“€μ–΄κ°€λ―€λ‘œ check[1], check[3], check[5], check[7] ... μ•ˆμ— μžˆλŠ” μΈλ±μŠ€κ°€ μ…€ν”„ λ„˜λ²„μ΄λ‹€.