관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 1로 만들기 (Kotlin) 본문

알고리즘 문제 풀이/프로그래머스

[Algorithm] 프로그래머스 - 1로 만들기 (Kotlin)

참깨빵위에참깨빵_ 2024. 5. 18. 00:10
728x90
반응형

 

앞선 2개 문제들과 마찬가지로 변환 규칙이 있다. 짝수면 반으로 나누고 홀수면 1을 빼고 반으로 나눈다.

이 변환을 반복해서 모든 숫자들이 1이 될 때까지 나누기 연산을 수행한 다음 최종적으로 몇 번 나눴는지를 리턴한다.

 

class Solution {
    fun solution(num_list: IntArray): Int {
        var totalDivisions = 0

        for (num in num_list) {
            var current = num

            while (current != 1) {
                if (current % 2 == 0) {
                    current /= 2
                } else {
                    current = (current - 1) / 2
                }
                totalDivisions++
            }
        }

        return totalDivisions
    }
}


1이 되면 계속 변환할 필요가 없기 때문에 while 조건을 current != 1로 주었다. 이렇게 하면 1이 되면 while문이 종료되고 totalDivisions를 리턴하게 되기 때문이다.

반응형
Comments