본문 바로가기

프로그래머스 (Swift)/기초

[Day20-1] 배열의 길이를 2의 거듭제곱으로 만들기

문제

 

내 정답 코드

import Foundation

func solution(_ arr:[Int]) -> [Int] {
    var arr = arr
    let count = arr.count
    var two = 1
    
    while(true) {
        if count <= two {
            let zeroCount = two - count
            (0..<zeroCount).map { _ in arr.append(0) }
            break
        }
        two *= 2
    }
    
    return arr
}

 

#

1. 먼저 무한 반복문을 돌리고 2를 계속 곱한다.

2. 2의 거듭 제곱과 배열의 개수를 비교하면서 개수가 2의 거듭제곱 값보다 작거나 같아진다면

3. 비는 공간만큼 0을 채워 반복문을 탈출하고 반환한다.


배운 기술