Archive/Questions
[programmers/Swift] 이진 변환 반복하기
Marco
2022. 8. 6. 09:55
728x90
programmers.co.kr - 코딩테스트연습 - Lv.2 - 월간 코드 챌린지 시즌 1 - 이진 변환 반복하기
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
Constraints :
- s의 길이는 1 이상 150,000 이하입니다.
- s에는 '1'이 최소 하나 이상 포함되어 있습니다.
//
// Created by Yongwoo Marco on 2022/08/04.
// Copyright © 2022 Yongwoo Marco Kim. All rights reserved.
//
func solution(_ s:String) -> [Int] {
var str = s, zeros = 0, round = 0
while str != "1" {
let removed = str.filter { $0 == "1" }.map { String($0) }.joined()
zeros += str.count - removed.count
round += 1
str = String(removed.count, radix: 2)
}
return [round, zeros]
}
print(solution("110010101001")) // [3, 8]
print(solution("01110")) // [3, 3]
print(solution("1111111")) // [4, 1]
How I tried this :
변수를 좀 줄이면 좋을것 같긴한데, 직관적으로 풀었다
특별한 고민없이 풀 수 있었다.
문제에 관한 모든 저작권 : https://programmers.co.kr/
728x90