주녘공부일지

[프로그래머스 C#] Lv.1 문자열 나누기 본문

CodingTest/Programmers Lv.1

[프로그래머스 C#] Lv.1 문자열 나누기

주녘 2023. 9. 3. 19:12

https://school.programmers.co.kr/learn/courses/30/lessons/140108

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

1. 정답코드 및 핵심 아이디어, 유의사항

나눠진 문자열의 개수를 구하면 되는 문제

주의) 문제가 쉬워보인다고 흘려서 읽었다간 해맬 수 있음 ( 이해한 것 같아도 입출력 예시에 적용해보기 )

    using System;

    public class Solution
    {
        public int solution(string s)
        {
            int answer = 1; // 나눠진 문자열의 개수
            char ch = '0'; // 기준 문자
            int count1 = 0; // 같은 문자
            int count2 = 0; // 다른 문자

            for (int i = 0; i < s.Length; i++)
            {
                if (ch == '0')
                    ch = s[i];

                if (ch == s[i])
                    count1++;
                else
                    count2++;

                // 마지막 인덱스에서 문자열 분리가 이뤄지면 추가하지 않음
                if (count1 == count2 && i != s.Length - 1)
                {
                    answer++;
                    ch = '0';
                    count1 = 0;
                    count2 = 0;
                }
            }

            return answer;
        }
    }