https://www.acmicpc.net/problem/11382
풀이
더보기
이번 문제의 쟁점은, 숫자가 10^12까지 올라간다는 것이다. 즉, Int형은 8자리밖에 못 쓰니 Int로 쓰면 NumberFormatException이 일어나게 된다. 따라서, 16자리까지 생기는 Double로 받아야 한다.
근데 여기서 문젠 Double로 출력하게 되면 1234.0 처럼 뒤에 소수점이 붙게 된다. 이것을 다시 포맷팅 해야한다.
이걸 이용하는게 String.format("%.0f", 숫자)를 이용해서 소수점을 떼버린다.
("%.nf" 를 이용해서 소숫점 n의 자리 수를 출력한다.)
또한, 공백을 통해 한 줄로 코드를 받아야 하기 때문에 next()가 아니라 nextLine()을 이용해서 공백을 포함하여 한 줄을 그대로 변수로 가져오게 해야한다(next를 쓰면 공백도 다음으로 이해한다.)
이를 공백으로 split해서 배열을 회전하면서 값을 더한다.
import java.util.*
fun main(args: Array<String>) {
question11382()
}
fun question11382() {
val sc: Scanner = Scanner(System.`in`)
var scArrayString = sc.nextLine()
var aArray = scArrayString.split(" ")
var answer = 0.0
aArray.forEach {
answer += it.toDouble()
}
println(String.format("%.0f", answer))
}
반응형
'스터디(beakjoon)' 카테고리의 다른 글
Kotlin] 백준 10172번 문제 풀이 (0) | 2023.04.04 |
---|---|
Kotlin] 백준 10171번 문제 풀이 (0) | 2023.04.04 |
Kotlin] 백준 2588번 문제 풀이 (0) | 2023.04.04 |
Kotlin] 백준 10430번 문제 풀이 (0) | 2023.04.04 |
Kotlin] 백준 10926번 문제 풀이 (0) | 2023.04.04 |