ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Kotlin 🍬 λ°±μ€€ 12단계 :: 2231 번
    2023. 6. 9. 21:15
    λ°˜μ‘ν˜•

    λΆ„ν•΄ν•©

    문제   |

      μ–΄λ–€ μžμ—°μˆ˜ 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을 좜λ ₯ν•œλ‹€.

     

     

    풀이  |

      뢄해합은 좜λ ₯될 숫자(μƒμ„±μž) + ν•΄λ‹Ή 수의 각 자릿수의 합이닀. μ΄λ•Œ, κ°€μž₯ μž‘μ€ μƒμ„±μžμ˜ κ²½μš°λŠ” 각 자릿수의 합이 μ΅œλŒ€κ°€ λ˜λŠ” κ²½μš°μ΄λ‹€. 각 자릿수의 합이 μ΅œλŒ€κ°€ λ˜λŠ” κ²½μš°λŠ” λͺ¨λ“  자릿수의 값이 9μΌλ•Œ μ΄λ―€λ‘œ for문을 μ΄μš©ν•΄ 9 * μž…λ ₯받은 수의 μžλ¦Ώμˆ˜λΆ€ν„° μž…λ ₯받은 μˆ˜κΉŒμ§€ 뢄해합을 계산해 λΉ„κ΅ν•œλ‹€.

     

     

    λ‹΅μ•ˆ  |

    fun main() {
        val N = readLine()!!.toInt()
        val nLength = N.toString().length
        
        for (i in N - 9 * nLength until N) {
            if (splitSum(i.toString()) + i == N) {
                print(i)
                return
            }
        }
        print(0)
    }
    
    fun splitSum(num: String): Int {
        var sum = 0
        for (i in num) {
            sum += Character.getNumericValue(i)
        }
        return sum
    }
    λ°˜μ‘ν˜•

    λŒ“κΈ€

Designed by Tistory.