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 |