Home [BaekJoon] 2231 λΆ„ν•΄ν•© JAVA
Post
Cancel

[BaekJoon] 2231 λΆ„ν•΄ν•© JAVA

πŸ”— λ°±μ€€ 2231 λΆ„ν•΄ν•© https://www.acmicpc.net/problem/2231

**문제 **

μ–΄λ–€ μžμ—°μˆ˜ N이 μžˆμ„ λ•Œ, κ·Έ μžμ—°μˆ˜ N의 뢄해합은 Nκ³Ό N을 μ΄λ£¨λŠ” 각 자리수의 합을 μ˜λ―Έν•œλ‹€. μ–΄λ–€ μžμ—°μˆ˜ M의 뢄해합이 N인 경우, M을 N의 μƒμ„±μžλΌ ν•œλ‹€. 예λ₯Ό λ“€μ–΄, 245의 뢄해합은 256(=245+2+4+5)이 λœλ‹€. λ”°λΌμ„œ 245λŠ” 256의 μƒμ„±μžκ°€ λœλ‹€. λ¬Όλ‘ , μ–΄λ–€ μžμ—°μˆ˜μ˜ κ²½μš°μ—λŠ” μƒμ„±μžκ°€ 없을 μˆ˜λ„ μžˆλ‹€. λ°˜λŒ€λ‘œ, μƒμ„±μžκ°€ μ—¬λŸ¬ 개인 μžμ—°μˆ˜λ„ μžˆμ„ 수 μžˆλ‹€.

μžμ—°μˆ˜ N이 μ£Όμ–΄μ‘Œμ„ λ•Œ, N의 κ°€μž₯ μž‘μ€ μƒμ„±μžλ₯Ό κ΅¬ν•΄λ‚΄λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.


μž…λ ₯

첫째 쀄에 μžμ—°μˆ˜ N(1 ≀ N ≀ 1,000,000)이 주어진닀.


좜λ ₯

첫째 쀄에 닡을 좜λ ₯ν•œλ‹€. μƒμ„±μžκ°€ μ—†λŠ” κ²½μš°μ—λŠ” 0을 좜λ ₯ν•œλ‹€.


풀이

μ–΄λ–€ 수 N을 λΆ„ν•΄ν•©μœΌλ‘œ κ°–λŠ” μƒμ„±μžλ₯Ό X라고 ν•œλ‹€λ©΄ N = X + X의 각 자리수의 ν•© 이닀

N이 3자리 수라고 ν•˜λ©΄ N = X + X₁ + Xβ‚‚ + X₃

이λ₯Ό μ΄ν•­ν•˜λ©΄ N - (X₁ + Xβ‚‚ + X₃) = X

그리고 각 Xn이 될 수 μžˆλŠ” μ΅œλŒ€κ°’μ€ N - (9 + 9 + 9) = X

즉, N - (9 Γ— X의 길이) λΆ€ν„° NκΉŒμ§€ 탐색을 ν•˜λ©΄ Xλ₯Ό ꡬ할 수 μžˆλ‹€.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(br.readLine());
        int len = String.valueOf(n).length();
        int ans = 0;

        for (int i = (n - (len * 9)); i < n; i++) {
            int num = i;
            int sum = 0;

            while (num != 0) {
                sum += num % 10;
                num /= 10;
            }

            if (sum + i == n) {
                ans = i;
                break;
            }
        }
        System.out.println(ans);
    }
}
This post is licensed under CC BY 4.0 by the author.

[BaekJoon] 4153 μ§κ°μ‚Όκ°ν˜• JAVA

[BaekJoon] 10828 μŠ€νƒ JAVA