[백준] 헤일스톤 수열 (3943)(kotlin)

문제 설명

백준 3943번 문제 링크

입력 및 출력

» 입력

첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 100,000)가 주어진다. 다음 줄부터 T개의 줄에는 헤일스톤 수열의 시작값 n이 주어진다. (1 ≤ n ≤ 100,000)

» 출력

각각의 테스트 케이스에 대해서, n으로 시작하는 헤일스톤 수열에서 가장 큰 값을 출력한다.

예제 입출력(테스트케이스)

입력 출력
4
1
3
9999
100000
1
16
101248
100000

문제 풀이1

fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
    repeat(readLine().toInt()) {
        val list = mutableListOf<Int>()
        var n = readLine().toInt()
        var max = 1

        while (n != 1) {
            if (n > max) max = n
            n = if (n % 2 == 0 ) n / 2 else n * 3 + 1
        }

        println(max)
    }
}