포스트

73. 1로 만들기


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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이 계속 나왔다.

좀 더 집중해야겠다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.