본문 바로가기
Algorithm

SwiftUI: 이진 변환 반복하기

by songmoro 2024. 3. 13.
728x90

프로그래머스 이진 변환 반복하기

 

주어진 문자열에서 0을 제거하고, 1의 개수를 2진수로 표현하는 것을 문자열이 “1”이 될 때 까지 반복하는 문제

 

String의 진수 변환을 사용해서 구현

 

func solution(_ s:String) -> [Int] {
    var answer = [0, 0]
    var s = s
    
    while(s != "1") {
        answer[0] += 1
        answer[1] += s.filter { $0 == "0" }.count
        
        s = String(s.filter { $0 == "1" }.count, radix: 2)
    }
    
    return answer
}

//    s    result
//    "110010101001"    [3,8]
//    111111 [1, 6] -> 110
//    11 [2, 7] -> 10
//    1 [3, 8]
//    "01110"    [3,3]
//    "1111111"    [4,1]
728x90

'Algorithm' 카테고리의 다른 글

SwiftUI: 피보나치 수  (0) 2024.03.15
SwiftUI: 다음 큰 숫자  (0) 2024.03.14
SwiftUI: 올바른 괄호  (0) 2024.03.12
SwiftUI: 최솟값 만들기  (0) 2024.03.11
SwiftUI: JadenCase 문자열 만들기  (0) 2024.03.09