9012: Parenthesis

네르기·2021년 8월 2일
0

알고리즘

목록 보기
3/76

https://www.acmicpc.net/problem/9012

뭐가 필요하나

  • 스택

스택, 필요한가?

필요 없다. ㅋㅋ
'(' 문자가 나온 개수, ')' 문자가 나온 개수를 빼는 방식으로 풀면 된다.
그런데, )( 가 그러면 옳다고 처리되니 문자열을 받아 더하는 도중에 '(' 개수 - ')' 개수 < 0이 되면 옳지 않다고 예외 처리도 해줘야 한다.

main()
{
  int t;
  char a[51];
  for(scanf("%d ",&t);t--;)
  {
    gets(a);
    int stack,i;
    for(i=stack=0;a[i];i++)
    {
      if(a[i]=='(')stack++;
      if(a[i]==')')
      {
        if(stack==0)break;
        stack--;
      }
    }
    puts(a[i]||stack?"NO":"YES");
  }
}

-> https://www.acmicpc.net/source/336300

profile
프로그래머와 애니메이터가 되고파

0개의 댓글