안녕하세요. 오늘은 이진변환 반복하기 문제를 풀어보겠습니다.
이진 변환 문제는 간단한 문자열 문제입니다.
문제에서 제시한 방법으로 0을 지우면서 지워진 0의 갯수를 count하고 이진변환의 횟수를 count해주면 됩니다.
import Foundation
var countZero = 0
func binaryTranform(_ string:String) -> String {
var count = 0
for element in string {
if element == "1" {
count += 1
}
else {
countZero += 1
}
}
var binary = ""
while(count != 0) {
if count % 2 == 1 {
binary = "1" + binary
}
else {
binary = "0" + binary
}
count /= 2
}
return binary
}
func solution(_ s:String) -> [Int] {
var result = s
var resultCount = 0
while(true) {
resultCount += 1
result = binaryTranform(result)
if result == "1" {
break
}
}
return [resultCount, countZero]
}
오늘은 여기까지이며, 질문이 있으시면 댓글로 남겨주세요~
오늘도 좋은 하루 되세요~
'Algorithm Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스] 2018 KAKAO BLIND RECRUITMENT [1차] 캐시 with Swift (0) | 2022.03.03 |
---|---|
[프로그래머스] 위클리 챌린지 전력망을 둘로 나누기 with Swift (0) | 2022.02.12 |
[프로그래머스] 위클리 챌린지 교점에 별 만들기 with Swift (0) | 2022.02.10 |
[프로그래머스] Summer/Winter Coding(~2018) 영어 끝말잇기 with Swift (0) | 2022.02.04 |
[프로그래머스] 월간 코드 챌린지 시즌1 삼각 달팽이 with Swift (0) | 2022.01.29 |