본문 바로가기

프로그래머스 (Swift)/lv 1

[lv1] 문자열 나누기

문제

 

내 정답 코드

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