반응형
백준 2309번 일곱 난쟁이 문제입니다. (solved.ac)기준 브론즈 1 문제입니다.
https://www.acmicpc.net/problem/2309
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
문제
문제 접근
총 9개의 난쟁의 키가 주어지고 그 중 7개를 골라 100이 되도록 하면 되는 문제입니다.
기본적으로 9개의 키를 모두 더하고 9가지 중 2가지를 골라 키의 합에서 빼주었을 때 100이 되는 경우를 찾아 오름차순으로 정렬 후 출력하도록 했습니다. 9C2라고 생각하면 될 것 같습니다.
정답 코드
removeAt() 을 사용
fun main() {
var nineDwarf = mutableListOf<Int>()
repeat(9) {
nineDwarf.add(readln().toInt())
}
var sum = nineDwarf.sum()
for (fir in 0..8) {
for (sec in fir + 1..8) {
if (sum - (nineDwarf[fir] + nineDwarf[sec]) == 100) {
nineDwarf.removeAt(sec)
nineDwarf.removeAt(fir)
nineDwarf.sorted().forEach {
println(it)
}
return
}
}
}
}
새로운 mutableList를 만들어서 출력.
fun main() {
var nineDwarf = mutableListOf<Int>()
var originDwarf = mutableListOf<Int>()
repeat(9) {
nineDwarf.add(readln().toInt())
}
var sum = nineDwarf.sum()
for (fir in 0..8) {
for (sec in fir + 1..8) {
if (sum - (nineDwarf[fir] + nineDwarf[sec]) == 100) {
nineDwarf.forEach {
if (it != nineDwarf[fir] && it != nineDwarf[sec]) {
originDwarf.add(it)
}
}
originDwarf.sorted().forEach {
println(it)
}
return
}
}
}
}
반응형
'알고리즘 문제풀이[Algorithm]' 카테고리의 다른 글
[백준] 10819 차이를 최대로(브루트 포스)[Kotlin - 코틀린] (0) | 2022.05.16 |
---|---|
[백준] 4673번 셀프 넘버(브루트포스 / 완전 탐색)(코틀린 - Kotlin) (0) | 2022.05.12 |
[백준] 1157번 단어 공부(코틀린 - Kotlin) (0) | 2022.05.10 |
[백준] 1110 더하기 사이클(Kotlin - 코틀린) (0) | 2022.04.27 |
[백준] 1966번 프린터 큐(Kotlin - 코틀린) (0) | 2022.04.24 |
최근댓글