사내 계산기 서비스는 사용자가 입력한 수식을 계산하기 전에 괄호부터 검사합니다.
수식에는 변수 이름(영어 소문자), 숫자, 연산자(+, -, *, /)가 섞여 있고,
괄호는 (), [], {} 세 종류를 쓸 수 있습니다.
수식 문자열 expr가 주어질 때, 괄호가 올바르게 사용되었는지 판별하는
solution(expr) 함수를 작성하세요. 올바르면 true, 아니면 false를 반환합니다.
괄호가 올바르다는 것은 다음을 모두 만족한다는 뜻입니다.
괄호가 아닌 문자는 검사에 영향을 주지 않으며, 수식에 괄호가 하나도 없으면 올바른 것으로 봅니다.
| expr | 반환값 | 설명 |
|---|---|---|
"3*(4+a)" |
true |
소괄호 한 쌍이 정상적으로 닫힘 |
"sum[i]*(x+1)" |
true |
서로 다른 종류의 괄호가 나란히 쓰임 |
"f(x]" |
false |
(를 ]로 닫으려 함 |
"{a+(b}*c)" |
false |
괄호가 교차됨 |
"n*2-7" |
true |
괄호가 없으면 올바름 |
"value)" |
false |
짝 없는 닫는 괄호 |
expr.length ≤ 10,000expr는 영어 소문자, 숫자, + - * /, 그리고 ( ) [ ] { } 로만 이루어져 있습니다시간 복잡도 목표: O(n)
▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.