[프로그래머스] 이진 변환 반복하기 - Swift

이창형·2023년 3월 9일
0

코드

import Foundation

func solution(_ s:String) -> [Int] {
    
    var s = s
    var count = 0, times = 0
    // s가 1이 될때까지 반복
    while s != "1" {
    	// filter을 통해 0의 갯수를 샌다
        let replaceCount = s.filter { $0 == "0" }.count
        // 0의 갯수를 count에 저장
        count += replaceCount
		
        // 1의 갯수를 구하여 2진법으로 변경
        s = String(s.count - replaceCount, radix: 2)
        // 횟수 1회 증가
        times += 1
    }
    
    return [times, count]
}

회고

  • filter를 쓸 생각을 못했다
  • 재귀함수로 풀려했는데 너무 막혀서 검색을 통해서 코드를 보았다
  • 잘 하고싶다
profile
iOS Developer

0개의 댓글