인프런 커뮤니티 질문&답변

rhkdtjd_12님의 프로필 이미지
rhkdtjd_12

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

1. 올바른 괄호(스택)

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

작성

·

314

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 인턴입니다.

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

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

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

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

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

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

rhkdtjd_12님의 프로필 이미지
rhkdtjd_12

작성한 질문수

질문하기