Skip to content

이기훈_Valid-Parentheses#43

Open
neo622 wants to merge 1 commit into404-my-job-not-found:mainfrom
neo622:Valid-Parentheses
Open

이기훈_Valid-Parentheses#43
neo622 wants to merge 1 commit into404-my-job-not-found:mainfrom
neo622:Valid-Parentheses

Conversation

@neo622
Copy link
Copy Markdown

@neo622 neo622 commented Aug 6, 2025

🧑‍💻 언어 및 제출 결과

  • 사용 언어: JavaScript
  • 통과 여부: ✅

🧠 풀이 설명

var isValid = function (s) {
    // 짝이 맞는 괄호 매핑 맵 정의
    const mapping = {
        "(": ")",
        "{": "}",
        "[": "]"
    }
    // Stack 선언
    const stack = [];
    // 길이가 1이거나 첫번째 인덱스 괄호가 닫는 괄호면 false
    if (s.length === 1) return false;
    if (s[0] === ")" || s[0] === "]" || s[0] === "}") return false;

    for (i = 0; i < s.length; i++) {
        // 닫는 괄호 차례에서는 stack에서 하나를 꺼내 mapping에서 비교
        if (stack.length > 0 && (s[i] === ")" || s[i] === "]" || s[i] === "}")) {
            const targetParent = stack.pop();
            if (mapping[targetParent] !== s[i]) return false;
            // 여는 괄호가 오면 우선 stack에 저장
        } else {
            stack.push(s[i]);
        }
    }
    // 최종적으로 모두 짝이 맞다면 stack의 길이는 0이어야 함
    return stack.length === 0;
};
  • Stack을 활용해서 괄호가 제대로 닫혔는지 확인
  • 최종적으로 stack에 아무것도 안남아 있으면 모두 짝지어졌다는 의미

📊 시간/공간 복잡도

✅ 어떠한 근거로 시간/공간 복잡도가 이렇게 나왔는지 설명해주세요.

⚡️ 풀이의 속도와 메모리 등을 캡쳐해서 올려주세요.

  • 시간 복잡도: O(n)
  • 공간 복잡도: O(1)

example

📝 추가 설명 (선택)

  • 고민했던 포인트가 있다면 간단히 적어주세요.

🙋‍♂️ 리뷰어에게

  • 리뷰어가 보면 좋을 포인트, 질문, 궁금한 점 등을 작성해 주세요.

@neo622 neo622 added the TeamA Team label for TeamA label Aug 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

TeamA Team label for TeamA

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant