• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

코드 한번 봐주실 수 있으신가요?

24.02.07 16:37 작성 조회수 264

0

function solution(arr) {
        const strArry = arr.split("");
        let answer = [];

        let i = 0;
        while (i < strArry.length) {
          if (strArry[i] === "(") {
            answer.push(strArry[i]);
          } else {
            answer.pop(strArry[i]);
          }
          i++;
        }

        return answer.length === 0 ? "YES" : "NO";
      }

      //console.log(solution("(()(()))(()"));
      console.log(solution("(((())))"));

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.02.07

안녕하세요, 인프런 AI 인턴입니다.

rhkdtjd_12님, 자바스크립트로 괄호를 확인하는 코드를 질문하신 것 같습니다. 코드의 목적이 올바른 괄호 쌍을 확인하는 것으로 보여 집니다. 제공해주신 코드의 로직은 주어진 문자열에서 열린 괄호가 나오면 스택에 넣고, 닫힌 괄호가 나오면 스택에서 하나를 제거해서 최종적으로 스택의 길이가 0이면 ‘YES’를, 아니면 ‘NO’를 반환하는 간단한 스택 알고리즘을 구현하려 하신 것으로 보입니다.

유사한 질문에 대한 답변으로, 괄호 쌍을 확인하는 알고리즘 문제에 대한 다른 학습자분들의 구현 방식과 그에 대한 답변이 여러 개 있는 것을 찾았습니다. 이 내용들을 참고하시면 현재 작성하신 코드를 개선하는 데 도움이 될 수 있습니다.

이러한 답변들은 각각 다른 로직의 구현을 갖고 있으며, 이를 확인하면서 여러분의 코드에 적용할 수 있는 부분을 참고하고 개선하는 데 도움을 얻을 수 있습니다.

올바른 괄호 쌍 문제의 경우 스택을 사용하여 여는 괄호는 스택에 넣고, 닫는 괄호가 나타나면 스택의 최상위 요소(마지막에 넣은 여는 괄호)를 꺼냅니다. 만약 닫는 괄호가 나왔을 때 스택이 비어있거나, 모든 검사를 마친 후에 스택에 남아있는 요소가 있다면 이는 올바르지 않은 괄호 쌍을 의미합니다.

제공해주신 코드에서 answer.pop(strArry[i]); 부분은 answer.pop();으로 변경해야 합니다. pop 메소드는 인자를 받지 않으며, 스택에서 가장 마지막에 추가된 요소를 제거하는 역할을 합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.