https://www.acmicpc.net/problem/1271
더보기
아니 이 문제도 멀쩡한 문제인줄 알았는데 (분노
(1 ≤ m ≤ n ≤ 10^1000, m과 n은 10진수 정수)
이 조건을 못봤다.. 조건..
ㅋㅋ.. 이거 실제로 string으로 뽑아보면 이렇게 생겼다.
이걸 어떻게 수학적으로 계산해요 미쳤읍니까 휴먼?
근데 놀랍게도 이걸 할 수 있음..
자바에는 LongLong형으로 큰 수를 계산할 수 있지만 코틀린은 LongLong 을 사용할 수 없다. 대신 BigInteger이라는 클래스로 이를 수학적으로 접근할 수 있게 해준다.
val test = BigInteger("11111111111222222222333344444455555555666666777")
대신 일반적인 사칙기호 연산자(+, -, /, *)를 쓸 수 없고 특별한 매서드를 통해 계산을 해야한다.
val test = BigInteger("11111111111222222222333344444455555555666666777")
val test2 = BigInteger("888888888888888889999999999999991111111")
test.add(test2) /* '+' */
test.minus(test2) /* '-' */
test.divide(test2) /* '/' */
test.remainder(test2) /* '%' */
이를 이용해서 실질적으로 코드로 계산해보자
import java.math.BigInteger
fun main(args: Array<String>) {
question1271()
}
fun question1271() {
val aliveList = readln().split(" ")
val money = BigInteger(aliveList[0])
val alive = BigInteger(aliveList[1])
println(money.divide(alive))
println(money.remainder(alive))
}
반응형
'스터디(beakjoon)' 카테고리의 다른 글
Kotlin] 백준 11282번 풀이 (0) | 2024.05.14 |
---|---|
Kotlin] 백준 14928번 문제 풀이 (0) | 2024.04.29 |
Kotlin] 백준 17427번 풀이 (0) | 2024.04.24 |
Kotlin] 백준 1748번 문제 풀이 (0) | 2024.04.23 |
Kotlin] 백준 2309 문제풀이 (0) | 2024.04.23 |