문제 풀기/C#

65. 문자열 나누기

kagan-draca 2025. 2. 12. 17:32

 

기본 틀 :

 

using System;

public class Solution {
    public int solution(string s) {
        int answer = 0;
        return answer;
    }
}

 

생각보다 간단한 문제인데 엄청 오래 고민 끝에 풀 수 있었다...

 

매개변수 s를 ToCharArray()를 통해 char 형 배열로 만들어준다.

 

 그리고, char 형 변수를 새로 만들어 첫 번째 단어를 그 변수에 담고

 

int 형 변수로 same과 diff를 만들어 같은, 다른 단어 개수를 담을 준비를 한다.

 

반복문을 수행하면서 같은 단어이면 same을, 다른 단어이면 diff를 1증가시켜준다.

 

만약, same과 diff가 같다면 반복문의 index가 char 형 배열의 길이보다 작은지 확인하고 

 

다음 첫 번째 단어를 저장 및 same과 diff를 0으로 초기화 해준다.

 

using System;

public class Solution 
{
    public int solution(string s) 
    {
        char[] temp = s.ToCharArray();
        // char 배열 형식으로 변환
        int count = 0;
        // 개수
        
        char first = temp[0];
        // 첫 번째 단어
        
        int same = 0, diff = 0;
        // 같은 개수, 다른 개수
        
        for(int i = 0; i < temp.Length; i++)
        {
            if(first == temp[i]) same++;
            else diff++;
            
            if(same == diff)
            {
                count++;
                if(i + 1 < temp.Length) first = temp[i + 1];
                
                
                same = 0;
                diff = 0;
            }
        }
        
        if(same > 0 || diff > 0) count++;
        
        return count;
    }
}

'문제 풀기 > C#' 카테고리의 다른 글

67. 둘만의 암호  (0) 2025.02.18
66. 대충 만든 자판(Dictionary)  (0) 2025.02.18
64. 체육복  (0) 2025.02.12
63. 숫자 짝수 (Dictionary)  (0) 2025.02.11
62. 옹알이 (2) (정규식)  (0) 2025.02.11