73. 1로 만들기

 


import Foundation

func solution(_ num_list:[Int]) -> Int {
    
    var answer : Int = 0
    var arr : [Int] = []
    var n : Int = 0
    
    arr = num_list
    
    for i in arr.indices {
        while (arr[i] != 1) {
            n = 0
            if arr[i] % 2 == 0 {
                arr[i] = arr[i] / 2
                n+=1
            } else {
                arr[i] = (arr[i]-1) / 2
                n+=1
            }
            answer += n 
        }
    }
    
    return answer
}

for 문 안에 while을 넣어서 각 원소가 1이될때까지 처리를 하게 하였다.

처음에 값이 에러가 났던건은 while안에 n의 값을 0을 해서 계속 리셋을 해야했는데, while밖에 n을 넣어서 21이 계속 나왔다.

좀 더 집중해야겠다.