Programmers - 문자열 나누기(C#)

장민제·2025년 4월 8일

Programmers

목록 보기
2/31

📝 문제 설명

아래는 프로그래머스에서 제공한 문제 설명입니다.

문자열 s가 매개변수로 주어집니다.
s를 아래 규칙에 따라 분해하고자 합니다.

  • 먼저 첫 글자를 읽습니다. 이 글자를 x라고 합시다.
  • 이제 이 문자열을 왼쪽에서 오른쪽으로 읽어나가면서, x와 x가 아닌 다른 글자들이 나온 횟수를 셉니다.
  • 처음으로 두 횟수가 같아지는 순간 멈추고, 지금까지 읽은 문자열을 분리합니다.
  • s에서 분리한 문자열을 빼고 남은 부분에 대해서 이 과정을 반복합니다.
  • 남은 부분이 없다면 종료합니다.

문자열 s가 매개변수로 주어질 때, 위 과정대로 문자열을 분해하고, 분해한 문자열의 개수를 return하는 함수 solution을 완성하세요.


❌ 제한사항

  • 1 ≤ s의 길이 ≤ 10,000
  • s는 영어 소문자로만 이루어져 있습니다.

💻 나의 풀이 (C#)

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++;
profile
Unity, C#

0개의 댓글