프로그래머스 (Swift)/lv 1
[lv1] 문자열 나누기
은더기
2024. 6. 2. 15:05
문제
내 정답 코드
import Foundation
func solution(_ s:String) -> Int {
var resultCount = 0
var x:Character? = nil
var xCount = 0
var difCount = 0
for chr in s {
if x == nil {
x = chr
xCount += 1
continue
}
if chr == x {
xCount += 1
} else {
difCount += 1
}
if xCount == difCount {
resultCount += 1
xCount = 0
difCount = 0
x = nil
}
}
return x != nil ? resultCount+1 : resultCount
}
#
1. 문자열 s로 반복문을 돌린다.
2. x가 nil이라면 문자 chr를 할당하고 xCount를 +1 한다.
3. x에 값이 할당되어 있을 때 부터는 x와 값을 비교하여 같다면 xCount를 다르다면 difCount를 1씩 늘려준다.
4. 카운트를 늘린 후 xCount와 difCount의 값이 같다면 resultCount를 +1 해주고 x와 count들을 초기화하여 다시 시작한다.
5. 마지막 문자가 1개 남았을 때는 최종 count에 +1을 하여 반환한다.
배운 기술