문제 설명
여는 소괄호((), 닫는 소괄호()), 여는 중괄호({), 닫는 중괄호(})로만 이루어진 괄호 열 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를 반환합니다.