Programming/[BAEKJOON] acmicpc

9012번 괄호 풀이

fkillrra 2018. 1. 20. 16:35

[문제] https://www.acmicpc.net/problem/9012



문제가 읽어보면 굉장히 간단합니다.

[입력/출력]



처음 이 문제를 접했을때 간단하게 생각을 했습니다.


'(' 가 입력될때 + 해주고 ')' 입력되면 - 해주면 마지막에 결국 '(' 개수와 ')' 개수가 동일한 결과만( ex) if(count == 0) ) YES를 출력하게 하면 되겠구나~


그렇게 작성한 소스코드가 trouble에 있습니다..


http://hackstoryadmin.tistory.com/40?category=270793


여기 들어가보면 동일한 알고리즘으로 작성한 소스코드를 보실 수 있습니다.(삽질의 흔적)


하지만 한가지 생각을 못했던 것이 있습니다.



바로 이런 결과입니다.


)(     -> 즉 괄호가 닫히지 않아서 문제에서 요구한 VPS가 되지 않습니다.


하지만 이런 결과도 결론적으로 count == 0이기 때문에 YES라고 맞다는 결과를 출력해주죠..


그렇기 때문에 이런 경우를 제외하여 다시 작성했습니다.


[풀이]

#include <stdio.h>


int main()

{

int i,j,input,count;


char arr[50];

scanf("%d",&input);


for(i = 0; i < input; i++)

{

scanf("%s",&arr);


count  = 0;


for(j = 0; j < 50; j++)

{

if(arr[j] == '\0')

break;

if(arr[j] == '(')

count++;

else if(arr[j] == ')' && count > 0)

count--;

else if(arr[j] == ')' && count <= 0)

{

count--;

break;

}

}


if(count == 0)

printf("YES\n");


else

printf("NO\n");

}

return 0;

}



이제 인증해주면~



그토록 보고싶던 결과가 나오네용...ㅠㅠ 


이상입니다.

반응형