https://www.acmicpc.net/problem/2309
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
난이도 : 브론즈 1
태그 : 정렬, 브루트포스
1. 설명
9명의 난쟁이가 주어졌을 때,
합이 100이 되는 7명의 난쟁이를 찾는 문제입니다.
9명의 난쟁이 키의 합을 구한 뒤,
9명 중 2명을 선택해 난쟁이 키 합에서 뺀 뒤, 100이 되는 케이스를 찾으면 될 것 같습니다.
2. 소스코드
<kotlin />
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]) }
}
'코딩테스트 > Kotlin' 카테고리의 다른 글
[백준 4344번] [Kotlin] 평균은 넘겠지 (0) | 2023.06.22 |
---|---|
[백준 2573번] [Kotlin] 빙산 (0) | 2023.06.21 |
[백준 1547번] [Kotlin] 공 (0) | 2023.06.18 |
[백준 2589번] [Kotlin] 보물섬 (0) | 2023.06.15 |
[백준 18110번] [Kotlin] solved.ac (0) | 2023.06.14 |