Post

🧩 Baekjoon 2231 - λΆ„ν•΄ν•©

🧩 Baekjoon 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을 좜λ ₯ν•œλ‹€.

예제

βœ… μž…λ ₯ 1

1
216

βœ… 좜λ ₯ 1

1
198

μž‘μ„± μ½”λ“œ

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
28
29
30
31
32
33
34
35
public class Main {
	public static void main(String[] args) throws IOException {
		// 1. λ³€μˆ˜ μ„ μ–Έ 및 μ΄ˆκΈ°ν™”
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		int index = 0;
		boolean isSolved = false;
		
		// 2. μˆœνšŒν•˜λ©° 쑰건에 λ§žλŠ” 경우 탐색
		for (int i = 1; i < n; i++) {
			// λ‚΄λΆ€ λ³€μˆ˜ μ„ μ–Έ 및 μ΄ˆκΈ°ν™”
			int result = 0;
			int temp = i;
			
			// i ν•© μ—°μ‚°
			result += temp;
			
			// 각 자릿수의 ν•© μ—°μ‚°
			while (temp > 0) {
				result += temp % 10;
				temp /= 10;
			}
			
			// κ²°κ³Όκ°€ λ„μΆœλœ 경우 순회문 쀑단
			if (result == n) {
				isSolved = true;
				index = i;
				break;
			}
		}
		
		// 3. 좜λ ₯
		System.out.println(isSolved ? index : 0);
	}
}

회고

  • index, isSolved λ³€μˆ˜λ₯Ό answer λ³€μˆ˜ ν•˜λ‚˜λ‘œ ν‘œν˜„ν•  수 μžˆμ—ˆλ‹€.
  • λ¬΄λΆ„λ³„ν•˜κ²Œ ν”Œλž˜κ·Έ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šλ„λ‘ ν•΄μ•Όκ² λ‹€.
This post is licensed under CC BY 4.0 by the author.