고대의 강력한 메인프레임, Bracketeer™를 위한 소프트웨어를 작성할 기회를 얻었어요. 그 위에서 돌아가는 소프트웨어는 독자적인 언어로 작성돼요. 문법은 대부분 익숙한데, 대괄호와 중괄호, 소괄호가 정말 많이 눈에 띄어요. Bracketeer™는 강력하지만 유연하지는 않아요. 소스 코드에 짝이 맞지 않는 대괄호나 중괄호, 소괄호가 하나라도 있으면 Bracketeer™는 멈춰 버리고 다시 부팅해야 해요. 그런 일을 피하려고, Bracketeer™에서 실행하기 전에 대괄호와 중괄호, 소괄호의 짝이 맞는지 확인할 수 있는 코드를 작성하기 시작해요.
[] 대괄호, {} 중괄호, () 소괄호 또는 이들의 조합이 들어 있는 문자열이 주어지면, 모든 쌍이 올바르게 짝을 이루고 중첩되어 있는지 확인해요.
그 밖의 다른 문자는 무시해요.
예를 들어, "{what is (42)}?"는 짝이 맞고 "[text}"는 맞지 않아요.
isBalanced에 전달되는 입력의 중첩은 10단계를 넘지 않는다고 가정해도 돼요.
allocator를 사용하지 않고 이 연습 문제를 풀어도 괜찮아요. 다만 테스트가 try를 사용하기 때문에 isBalanced 함수가 bool만 반환할 수는 없다는 점에 유의해야 해요.
Exercism에 가입하고 Zig 트랙을 연습 문제 104개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.