본문 바로가기
Algorithm

SwiftUI: 문자열 나누기

by songmoro 2024. 3. 7.
728x90

프로그래머스 문자열 나누기

 

문자열의 첫 글자부터 순회해서, 첫 글자와 일치하지 않는 글자가 더 많아지면 단어로 만들고 그 수를 세는 문제

스택을 위해 배열을 뒤집고, 배열을 순회하며 비교해서 구현

 

func solution(_ s:String) -> Int {
    var reversed = String(s.reversed())
    var answer = 0
    
    var x = reversed.last!
    var count1 = 0
    var count2 = 0
    
    while(!reversed.isEmpty) {
        switch(reversed.popLast()) {
        case x:
            count1 += 1
        default:
            count2 += 1
        }
        
        if count1 == count2 {
            x = reversed.last ?? "."
            answer += 1
            count1 = 0
            count2 = 0
        }
    }
    
    return x == "." ? answer : answer + 1
}

//    s    result
//    "banana"    3 "ba na na"
//    "abracadabra"    6 "ab ra ca da br a"
//    "aaabbaccccabba"    3 "aaabbacc ccab ba"
728x90

'Algorithm' 카테고리의 다른 글

SwiftUI: 최댓값과 최솟값  (0) 2024.03.08
SwiftUI: 로또의 최고 순위와 최저 순위  (0) 2024.03.07
SwiftUI: 숫자 짝꿍  (0) 2024.03.07
SwiftUI: 체육복  (0) 2024.03.07
SwiftUI: 가장 많이 받은 선물  (1) 2024.02.05