10주차 · 스택 · 큐 · 덱
쉬움스택문자열

올바른 괄호

(, ), {, }, [, ] 로만 이루어진 문자열 s가 주어져요. 이 문자열이 올바른 괄호 문자열인지 판별해요.

올바른 괄호 문자열이려면 여는 괄호가 같은 종류의 닫는 괄호로 닫혀야 하고, 괄호의 중첩 순서가 올발라야 해요. 빈 문자열은 올바른 것으로 봐요.

예시

예시 1
예시 2
예시 3

제한 사항

  • 0 ≤ s.length ≤ 10,000
  • s는 괄호 문자로만 이루어져 있어요.
여는 괄호는 스택에 넣고, 닫는 괄호를 만나면 스택 맨 위와 짝이 맞는지 확인하세요. 끝났을 때 스택이 비어 있어야 해요.
javascript
function isValid(s) {
const pair = { ")": "(", "]": "[", "}": "{" };
const stack = [];
for (const ch of s) {
if (ch in pair) {
if (stack.pop() !== pair[ch]) return false;
} else {
stack.push(ch);
}
}
return stack.length === 0;
}
에디터를 불러오고 있어요…
코드를 작성하고를 눌러 예시 테스트를 확인해 보세요.