본문 바로가기

알고리즘

[백준][KOTLIN] 11047 동전 0

728x90

- https://www.acmicpc.net/problem/11047

 

11047번: 동전 0

첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)

www.acmicpc.net

코드

import java.io.*
import java.util.*

fun main(args: Array<String>) {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val st = StringTokenizer(br.readLine())
    val N = st.nextToken().toInt()
    val K = st.nextToken().toInt()
    val A = IntArray(N + 1)

    // 1번째 부터 동전의 가치를 입력 받는다.
    repeat(N) { index ->
        A[index + 1] = br.readLine().toInt()
    }

    var value = K
    var result = 0

    // 동전의 가치가 저장된 배열을 뒤에서 부터 검색하여 최대 가치로 나누어 질 수 있는 값을 찾는 다.
    for (i in N downTo 1) {
        if (value / A[i] > 0) {
            result += value / A[i]
            value %= A[i]
        }
    }

    println(result)
}
728x90

'알고리즘' 카테고리의 다른 글

[백준][KOTLIN] 11399 ATM  (0) 2021.12.24
[백준][KOTLIN] 1931 회의실 배정  (0) 2021.12.24
[백준][Kotlin] 12865 평범한 배낭  (0) 2021.12.22
[백준][Kotlin] 1912 연속합  (0) 2021.12.17
[백준][KOTLIN] 9251 LCS  (0) 2021.12.17