Problem1106--괄호 검사

1106: 괄호 검사

Time Limit: 2 Sec  Memory Limit: 128 MB
Submit: 839  Solved: 91
[Submit] [Status] [Web Board] [Creator:]

Description

프로그램에서는 여러가지 타입의 괄호들이 같은 타입으로 쌍으로 존재해야 한다.
주로 대괄호[] 중괄호{} 소괄호() 등이 사용된다. 괄호가 올바르게 사용되었는지 확인하려면 다음 3가지 조건을 확인하면 된다.

  1. 왼쪽 괄호와 오른쪽 괄호의 갯수가 같아야 한다.
  2. 같은 타입의 괄호에서 왼쪽 괄호는 오른쪽 괄호보다 먼저 나와야한다
  3. 서로 다른 타입의 왼쪽괄호와 오른쪽 괄호 쌍은 서로를 교차하면 안된다.
길어진 방학으로 프로그래밍의 청정수로 돌아온 주용이를 위해 프로그램의 코드가 입력되었을떄 괄호가 올바르게 사용되었는지 확인해주자.

Input

첫번째 줄에 int 범위의 testCase가 입력된다. 
이어서 testCase만큼 공백이 포함되지 않은 괄호열이 입력된다.
각 testCase는 개행으로 구분되며 1000자 이내이다.

Output

각 코드의 괄호가 적절한지 판단한다. 
만약 적절하게 사용되었다면 Good!를 출력하고 적절하게 사용되지 못했다면  Retry...를 출력한다.

Sample Input Copy

3
({[(({}))]})
[{]}
)(

Sample Output Copy

Good!
Retry...
Retry...

HINT

Stack을 이용해보자.
백준사이트의 10828번을 먼저 풀어보면 도움이 된다.
여러 개의 테스트케이스를 반복해서 수행할 때에는, 한 케이스에서 스택에 자료가 남아 있는 상태에서 중단된 경우 다음 테스트케이스를 시작하기 전에 스택을 비우는 것을 잊지 말자!
차차형이 기본문제네 너무 쉽다고 주장했다.  

Source/Category