프로그래머스 (Swift)/기초
[Day15-3] 1로 만들기
은더기
2024. 4. 12. 08:47
문제
내 정답 코드
import Foundation
func solution(_ num_list:[Int]) -> Int {
var num_list = num_list
var count:Int = 0
for i in 0..<num_list.count {
while(true) {
if num_list[i].isMultiple(of: 2) {
num_list[i] /= 2
count += 1
} else if !num_list[i].isMultiple(of: 2) {
if num_list[i] == 1 { break }
num_list[i] = (num_list[i]-1) / 2
count += 1
}
}
}
return count
}
#
1. 배열의 값들마다 특별한 연산을 반복하여 1을 만드는데
2. 이 연산이 총 몇 번 이루어졌는지 구하는 문제이다.
3. 연산을 반복하여 1이 되면 반복문을 탈출하고 다음 값으로 연산을 시작한다.
4. 연산이 진행될 때마다 count를 올리고 최종 count를 반환한다.
배운 기술