Uknow's Lab.
article thumbnail

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

 

2309번: 일곱 난쟁이

아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.

www.acmicpc.net

 

난이도 : 브론즈 1
태그 : 정렬, 브루트포스

 

 

설명

9명의 난쟁이가 주어졌을 때,

합이 100이 되는 7명의 난쟁이를 찾는 문제입니다.

 

9명의 난쟁이 키의 합을 구한 뒤,

9명 중 2명을 선택해 난쟁이 키 합에서 뺀 뒤, 100이 되는 케이스를 찾으면 될 것 같습니다.

 

 

 

소스코드

fun main() {
    val height = Array(9) { 0 }
    repeat(9) { height[it] = readLine()!!.toInt() }
    height.sort()
    val sum = height.sum()
    var ptr1 = -1
    var ptr2 = -1
    var isFinish = false
    for (i in 0 until 9) {
        for (j in 0 until 9) {
            if (i == j) continue

            val seven = sum - height[i] - height[j]
            if (seven == 100) {
                ptr1 = i
                ptr2 = j
                isFinish = true
                break
            }
        }
        if (isFinish) break
    }

    repeat(9) { if (it != ptr1 && it != ptr2) println(height[it]) }
}

 

 

profile

Uknow's Lab.

@유노 Uknow

인생은 Byte와 Double 사이 Char다. 아무말이나 해봤습니다.