์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/BOJ_Java

[BOJ/Step11] 2231 : ๋ถ„ํ•ดํ•ฉ (JAVA)

NaNaRin๐Ÿ™ƒ 2021. 1. 21. 11:56

www.acmicpc.net/problem/2231

 

2231๋ฒˆ: ๋ถ„ํ•ดํ•ฉ

์–ด๋–ค ์ž์—ฐ์ˆ˜ N์ด ์žˆ์„ ๋•Œ, ๊ทธ ์ž์—ฐ์ˆ˜ N์˜ ๋ถ„ํ•ดํ•ฉ์€ N๊ณผ N์„ ์ด๋ฃจ๋Š” ๊ฐ ์ž๋ฆฌ์ˆ˜์˜ ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค. ์–ด๋–ค ์ž์—ฐ์ˆ˜ M์˜ ๋ถ„ํ•ดํ•ฉ์ด N์ธ ๊ฒฝ์šฐ, M์„ N์˜ ์ƒ์„ฑ์ž๋ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 245์˜ ๋ถ„ํ•ดํ•ฉ์€ 256(=245+2+4+5)์ด

www.acmicpc.net


๋ฌธ์ œ

์–ด๋–ค ์ž์—ฐ์ˆ˜ 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

216

 

์˜ˆ์ œ ์ถœ๋ ฅ 1

198


ํ’€์ด

์ˆซ์ž n๊ณผ n์˜ ๊ธธ์ด l์ด ์ž…๋ ฅ๋˜๋ฉด n์˜ ๋ถ„ํ•ดํ•ฉ m์„ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ํ•จ์ˆ˜ nm์„ ์ž‘์„ฑ

1. 1๋ถ€ํ„ฐ n๊นŒ์ง€ ์ˆœ์„œ๋Œ€๋กœ ๋ถ„ํ•ดํ•ฉ์„ ๊ตฌํ•ด ๋ถ„ํ•ดํ•ฉ์ด n๊ณผ ๊ฐ™์œผ๋ฉด i๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์ข…๋ฃŒ

   ( n์˜ ๊ฐ€์žฅ ์ž‘์€ ์ƒ์„ฑ์ž๋ฅผ ๊ตฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— 1๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰ )

 

import java.util.Scanner;

public class B2231 {
	
	static int nm(int n, int l) {
		int m = n;
		for(int i = 0; i < l; i++) {
			m += n % 10;
			n /= 10;
		}
		return m;
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		int l = Integer.toString(n).length();
		
		for(int i = 1; i <= n; i++) {
			if(n == nm(i, l)) {
				System.out.println(i);
				return;
			}
		}
		System.out.println("0");
	}
}