Algorithm Problem Solving/Programmers

[프로그래머스] 월간 코드 챌린지 시즌1 이진 변환 반복하기 with Swift

코코자장자장 2022. 3. 4. 08:14

안녕하세요. 오늘은 이진변환 반복하기 문제를 풀어보겠습니다.


이진 변환 문제는 간단한 문자열 문제입니다.

문제에서 제시한 방법으로 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]
}

 

오늘은 여기까지이며, 질문이 있으시면 댓글로 남겨주세요~

 

오늘도 좋은 하루 되세요~