728x90
본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다.
https://github.com/ROUTINE-STUDY/Algorithm
저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다.
문의는 댓글 바람.
문제 출처 : https://www.acmicpc.net/problem/1769
[접근 방법]
자리수가 최대 1,000,000개이므로 바로 정수형으로 받으면 안된다.
따라서, String형으로 받은 다음에 차례대로 계산을 해야한다.
각 자리수를 더하면 최댓값이 900만이므로 int형으로 받아도 된다.
import java.io.BufferedReader
import java.io.InputStreamReader
var cnt = 0
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
var X = readLine()
val outputNum = getCntOfLoop(X)
println(cnt)
if (outputNum % 3 == 0) println("YES")
else println("NO")
}
fun getCntOfLoop(X: String): Int {
if (X.length < 2) {
return X.toInt()
}
var x = StringBuilder(X)
var temp = 0
while (true) {
cnt++
for (i in x.length-1 downTo 0) {
temp += x[i].digitToInt()
}
if (temp < 10) {
break
}
x = StringBuilder(temp.toString())
temp = 0
}
return temp
}
728x90
반응형
'알고리즘 문제 풀이 > 구현' 카테고리의 다른 글
백준 - 사탕 박사 고창영(Kotlin) (0) | 2022.04.05 |
---|---|
백준 - 과제는 끝나지 않아!(Java, Kotlin) (0) | 2022.04.04 |
백준 - 경쟁적 감염 (0) | 2022.03.23 |
백준 - 빙고(Kotlin) (0) | 2022.03.23 |
백준 - 추월(Kotlin) (0) | 2022.02.24 |