Problem Solving/백준

[2231] 분해합

충무로술겜마 2021. 7. 2. 13:05

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

 

2231번: 분해합

어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이

www.acmicpc.net

브루트 포스가 가장 간단한 해답이라는 생각이 들었는데 인풋도 하나에 시간도 널널했네요.

1부터 주어진 자연수까지 하나씩 다 해보면 됩니다.

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
import java.util.*
 
fun checkSum(x:Int): Boolean {
    for (i in 1..x){
        var array = IntArray(7) { 0 }
        var _x = i
        var j = 0
        while(_x != 0){
            array[j] = (_x % 10)
            _x /= 10
            j++
        }
        val sum = array.sum()
        if(i+sum == x){
            println(i)
            return true
        }
    }
    return false
}
 
fun main(){
    val sc: Scanner = Scanner(System.`in`)
    val N = sc.nextInt()
    if (!checkSum(N)){
        println("0")
    }
}
 
cs

'Problem Solving > 백준' 카테고리의 다른 글

[15829] Hashing  (0) 2021.07.05
[2798] 블랙잭  (0) 2021.07.05
[2775] 부녀회장이 될테야  (0) 2021.07.05
[4153] 직각삼각형  (0) 2021.07.02
[10250] ACM 호텔  (0) 2021.07.02