학습
시험

올바른 괄호열 2

난이도
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를 반환합니다.