ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C#/프로그래머스] 올바른 괄호
    코테풀이 2026. 4. 11. 17:53

    Level 2

     

    딱봐도 쉽다 !!!!!!!! 

     

    다만 괄호가 성립해야한다는 특수한 조건 때문에 주의해야할 점이 있다.

     

    1. 닫힌괄호와 열린괄호 개수는 같아야한다
    2. 닫힌괄호로 시작할 경우 뒤에 볼 필요없이 false가 나와야한다
    3. 닫힌괄호 열린괄호가 짝수이고 시작이 열린괄호라 할지라도 닫힌괄호가 앞에 나온 열린괄호에 많이 나올 경우 false다
    EX) "())(()"  false

     

     

    첫번째 시도

    더보기

    처음에 보면  스택을 사용하지 않았었다.

    첨 읽을때 지문의 조건을 다 파악 못해서인데 괄호가 성립해야한다는 말을 그냥 개수만 맞으면 되는줄 알아서...(바보짓)

    그래서 이게 왜 스택/큐에 문제가 분류되어있지?하면서 풀었다.

     

    참고로 이거써도 테스트 코드는 성공하게 되어있다.

    코테는 잘 생각해서 보이지 않는 테스트 케이스까지 발굴해야하는게 중요한듯

    using System;
    using System.Collections.Generic;
    
    public class Solution {
        public bool solution(string s) {
            bool answer = true;
            int len =s.Length;
            
            int A=0;
            int B=0;
            
            if(s[0]==')')
            {
                answer=false;
                return answer;
            }
            for(int i=0; i<len; i++)
            {
                if(s[i]=='(')A++;
                else B++;
            }
            
            if((A-B) !=0) answer=false; 
            
            return answer;
        }
    }



     

    제출 코드 

    using System;
    using System.Collections.Generic;
    
    public class Solution {
        public bool solution(string s) {
            bool answer = true;
            int len =s.Length;
            
            Stack<char> A = new Stack<char>();
          
            
            if(s[0]==')')
            {
                answer=false;
                return answer;
            }
            
            A.Push(s[0]);
            
            for(int i=1; i<len; i++)
            {
                if(s[i]=='(')
                {
                    A.Push(s[i]);
                }
                else
                {
                    if(A.Count !=0)
                    {
                        A.Pop();
                    }
                    else 
                    {
                         answer=false;
                         return answer;
                    }
                }
            }
            if(A.Count !=0) answer=false;
            return answer;
           
        }
    }

    효율성 테스트 까지있는데 스택 큐가 가벼운 편이라 조건이 복잡하지 않으면 발목잡힐일이 별로 없는듯 함

     

    끝~

    '코테풀이' 카테고리의 다른 글

    [C#/프로그래머스] 하노이의 탑  (0) 2026.04.15
    [C#/프로그래머스]숫자 게임  (0) 2026.04.10
    [C#/프로그래머스] 귤 고르기  (0) 2026.04.10
    [C#/백준] 소수찾기 1978번  (0) 2026.04.08
Designed by Tistory.