
아래는 프로그래머스에서 제공한 문제 설명입니다.
문자열 s가 매개변수로 주어집니다.
s를 아래 규칙에 따라 분해하고자 합니다.
s에서 분리한 문자열을 빼고 남은 부분에 대해서 이 과정을 반복합니다.문자열 s가 매개변수로 주어질 때, 위 과정대로 문자열을 분해하고, 분해한 문자열의 개수를 return하는 함수 solution을 완성하세요.
s의 길이 ≤ 10,000s는 영어 소문자로만 이루어져 있습니다.using System;
public class Solution {
public int solution(string s) {
int answer = 0;
// 처음 문자 및 각각 Count할 변수 설정
char firstCh = ' ';
int sameC = 0;
int diffC = 0;
// 문자열 앞에서부터 차례대로 탐색
for (int i = 0; i < s.Length; i++)
{
// 처음 문자를 지정할 때
if (sameC == 0 && diffC == 0)
{
firstCh = s[i];
sameC = 1;
continue;
}
if (s[i] == firstCh)
sameC++;
else
diffC++;
// 둘의 수가 같아지면 Count 초기화 및 분리횟수 추가
if (sameC == diffC) {
answer++;
sameC = 0;
diffC = 0;
}
}
// 문자열 끝에 남아있는 덩어리 포함
if (sameC != 0 || diffC != 0) answer++;