카테고리 없음

알고리즘 문제

rxo2 2025. 5. 2. 20:04
public class Solution 
{
    // 함수 정의: 문자열 s를 받아 올바른 괄호인지 판별
    public bool solution(string s) 
    {
        int count = 0; // 여는 괄호 '('의 개수를 세기 위한 변수

        foreach (char c in s) 
        { // 문자열 s의 모든 문자에 대해 반복
            if (c == '(') 
            {
                count++; // 여는 괄호면 count 증가
            } 
            else 
            {
                count--; // 닫는 괄호면 count 감소
                if (count < 0) 
                {
                    // count가 음수라면, 닫는 괄호가 먼저 나왔다는 뜻이므로 올바르지 않음
                    return false;
                }
            }
        }

        // 반복문이 끝난 후 count가 0이면 괄호가 모두 짝지어졌다는 뜻
        return count == 0;
    }
}

 

작동 흐름 

1. 변수 초기화

  • count는 현재까지 짝지어지지 않은 여는 괄호의 수를 나타.

2. 문자 순회

  • '('이 나오면 count++
  • ')'이 나오면 count--
  • 만약 count가 음수가 되면, 여는 괄호 없이 닫는 괄호가 먼저 나온 것이므로 false를 반환.

3.결과 반환

  • 문자열을 끝까지 순회한 후 count == 0이면 모든 괄호가 짝이 맞는 것이므로 true,그렇지 않으면 false.