학습
시험

올바른 괄호열 1

난이도
BEGINNER

문제 설명

여는 소괄호(()와 닫는 소괄호())로만 이루어진 괄호 열 brackets가 주어질 때, 아래 올바른 괄호 열 조건에 부합하는 괄호 열인지 판별하여 반환하는 solution 함수를 작성하시오.

올바른 괄호 열 조건

1. 한 개의 여는 괄호는 한 개의 닫는 괄호와 대응되어 쌍을 이루어야 한다.
2. 여는 괄호가 나오면 그에 대응되는 닫는 괄호는 나중에 나와야 한다.
3. 괄호 쌍이 서로 교차해서는 안 된다.

예를 들어 ()()나 (()()) 괄호 열은 올바른 괄호 열입니다.
하지만 (() 괄호 열은 여는 괄호와 닫는 괄호의 개수가 달라 대응되어 쌍을 이루지 못하므로 올바른 괄호 열이 아닙니다.
또한 ())(() 괄호 열은 여는 괄호와 닫는 괄호가 쌍을 이룰 수 있지만 닫는 괄호가 여는 괄호보다 먼저 나오기 때문에 올바른 괄호 열이 아닙니다.


제한 사항

  • brackets의 길이는 1 이상 1,000,000 이하입니다.
  • brackets는 오직 '('와 ')'로만 이루어져 있습니다.

예시 테스트케이스 설명

테스트케이스 번호 brackets return
1 "()()" true
2 "(()" false
3 "())(()" false

1번 테스트케이스 설명

  • ()()는 각 여는 괄호마다 닫는 괄호를 대응될 수 있으며 괄호 쌍이 올바른 순서를 이루므로 올바른 괄호 열입니다. 따라서 true를 반환합니다.

2번 테스트케이스 설명

  • (()는 여는 괄호와 닫는 괄호의 개수가 달라 대응되어 쌍을 이루지 못하므로 올바른 괄호 열이 아닙니다. 따라서 false를 반환합니다.

3번 테스트케이스 설명

  • ())(()는 여는 괄호와 닫는 괄호가 쌍을 이룰 수 있지만 닫는 괄호가 여는 괄호보다 먼저 나오기 때문에 올바른 괄호 열이 아닙니다. 따라서 false를 반환합니다.