알고리즘은 정말 생각하면 할수록 더 나은 풀이가 나오는것 같습니다..!
1. 제가 처음 풀었을때의 코드입니다
fun main() = with(System.`in`.bufferedReader()) {
var input = readLine().toInt()
var count = 0
while (true) {
if (input % 5 == 0) {
print("${input / 5 + count}")
break
} else if (input <= 0) {
print(-1)
break
}
input -= 3
count++
}
}
근데 채점하면 효율이 떨어지는것 같아서 다른분들 코드도 보고 이것저것 찾아봤습니다
정말 신기한 코드들이 많더군요!
2. 짧은 코드 버전
fun main() = with(System.`in`.bufferedReader()) {
val input = readLine().toInt()
var bag = input / 5
while ((input - bag * 5) % 3 > 0 && bag >= 0) {
--bag
}
print(if (bag < 0) -1 else (input - bag * 5) / 3 + bag)
}
3.
fun main() = with(System.`in`.bufferedReader()) {
val input = readLine().toInt()
for (i in (input / 5).downTo(0)) {
val bag = (input - i * 5)
if (bag % 3 != 0) {
continue
}
print(i + bag / 3)
return
}
print(-1)
}
4.
fun main() = with(System.`in`.bufferedReader()) {
val input = readLine().toInt()
for (i in 0 until input) {
val bag = input - 3 * i
if (bag < 0) {
println(-1)
break
}
if (bag.rem(5) == 0) {
println(i + bag / 5)
break
}
}
}
1번을 제외한 2,3,4번은 다른분들의 코드를 많이 참조해서 공부하였습니다
언젠간 깊어지기를..!
'개발 > 알고리즘' 카테고리의 다른 글
[알고리즘] 백준 10870번 : 피보나치 수 5 (Kotlin) (0) | 2020.12.07 |
---|---|
[알고리즘] 백준 1929번 : 소수 구하기 (Koltin) (0) | 2020.12.06 |
[알고리즘] 백준 1152번 : 단어의 개수 (Kotlin) (0) | 2020.12.01 |
[알고리즘] 백준 2562번 : 최댓값 (Kotlin) (0) | 2020.11.26 |
[알고리즘] 백준 10952번 : A+B-5 (Kotlin) (0) | 2020.11.19 |
댓글