프로그래머스 - Swift algorithm - BALLOON 단어 찾기
2021. 8. 4. 17:09ㆍDeveloper.TokkiSea/Apple
반응형
"BAOOLLNNOLOLGBAX" 이런 형태의 문자가 입력되면
BALLOON을 몇개나 만들수 있는지를 알아내는 문제다.
C++의 char 정도로 for 문 돌면서 찾고 지우면
너무 쉽게 결과가 나올것 같다.
하지만 Swift 는 Charecter 와 String 의 사용이
자연스럽지 못해서 조금은 어려울 수 있다.
public func findBALLOON(_ S : inout String) -> Int {
let searchArr : Array = ["B","A","L","L","O","O","N"]
var foundCount : Int = 0
var bRoop : Bool = true
while(bRoop) {
if !S.contains("B") { // 첫 글자 B 조차 없으면 시작도 하지 않는다.
break
}
// BALLOON 순서대로 찾고 찾으면 글자는 바로바로 지운다.
for char in searchArr.enumerated() {
if S.contains(String(char.element)) {
let range: Range<String.Index> = S.range(of: char.element)!
let index: Int = S.distance(from: S.startIndex, to: range.lowerBound)
S.remove(at: range.lowerBound)
if char.offset == searchArr.count-1 {
foundCount += 1
}
continue
}
else {
bRoop = false
break
}
}
}
return foundCount
}
String 인 S를 S[3] 식으로 쓸 수 없다.
원한다면 별도로 extension String { } 를 만들어서 쓰자.
반응형
'Developer.TokkiSea > Apple' 카테고리의 다른 글
RxSwift 정리 2 - SubJect, operators(기본) (0) | 2021.08.20 |
---|---|
RxSwift 정리 1 - Observable 생성 (0) | 2021.08.20 |
SwiftUI 스터디 4. List, GeometryReader, Animation, Selection, SF Symbols (0) | 2021.06.03 |
SwiftUI 스터디 3. StackView, Gradient (0) | 2021.05.27 |
SwiftUI 스터디 2 - TextFiled, Section, Picker, Keyboard dismiss (0) | 2021.05.24 |