문자열 s가 입력되었을 때 다음 규칙을 따라서 이 문자열을 여러 문자열로 분해하려고 합니다.
func solution(_ s:String) -> Int {
var answer = 0
var index = s.startIndex
while index < s.endIndex {
let x = s[index]
var countX = 0
var countNonX = 0
var endIndexForGroup = index
while endIndexForGroup < s.endIndex {
let currentChar = s[endIndexForGroup]
if currentChar == x {
countX += 1
} else {
countNonX += 1
}
if countX == countNonX {
endIndexForGroup = s.index(after: endIndexForGroup)
break
}
endIndexForGroup = s.index(after: endIndexForGroup)
}
answer += 1
index = endIndexForGroup
}
return answer
}

index 관리 없이 for문을 사용하여 순회count가 0이 될 때마다 하나의 그룹을 완성func solution(_ s: String) -> Int {
var answer = 0
var x: Character?
var countX = 0
var countNotX = 0
for char in s {
if x == nil {
x = char
}
if char == x {
countX += 1
} else {
countNotX += 1
}
if countX == countNotX {
answer += 1
x = nil
countX = 0
countNotX = 0
}
}
// 남은 글자가 있을 경우 마지막 한 묶음 처리
if x != nil {
answer += 1
}
return answer
}
