문제
내 정답 코드
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을 하여 반환한다.
배운 기술
'프로그래머스 (Swift) > lv 1' 카테고리의 다른 글
[lv1] 삼총사 (0) | 2024.06.12 |
---|---|
[lv1] 추억 점수 (0) | 2024.06.12 |
[lv1] 기사단원의 무기 (1) | 2024.06.02 |
[lv1] 가장 가까운 같은 글자 (0) | 2024.06.02 |
[lv1] 크기가 작은 부분 문자열 (0) | 2024.06.02 |