본문 바로가기
  • 살짝 구운 김 유나
Algorithm/Programmers

[Lv.2] 올바른 괄호 - JavaScript

by yunae 2023. 2. 26.

문제

https://school.programmers.co.kr/learn/courses/30/lessons/12909

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

코드

function solution(s) {
  var answer = true;

  let stack = [];
  for (let i of s) {
    if (i === "(") {
      stack.push(i);
    } else {
      if (stack.length > 0) {
        stack.pop();
      } else {
        // 짝이 맞지 않을 때도 false처리 해주어야함
        answer = false;
      }
    }
  }

  // 순회가 모두 끝났을 때 stack의 길이 확인
  if (stack.length > 0) {
    answer = false;
  }
  return answer;
}

 

 

💡 What I learned

배열에 원소 추가

Arr.push()       // 배열의 끝에 원소 추가
Arr.unshift()    // 배열의 앞에 원소 추가
Arr.splice()     // 원하는 위치에 하나 이상의 원소를 추가

// splice 예제
Arr.splice(2, 0, 추가할 원소); // index 2의 위치에 원소를 추가
Arr.splice(2, 0, 추가할 원소1, 추가할 원소2); // index 2의 위치부터 원소들을 추가

배열의 원소 제거

- 세가지 모두 제거된 원소를 리턴한다.

Arr.pop()       // 배열의 끝에 원소 제거
Arr.shift()    // 배열의 앞에 원소 제거
Arr.splice()     // 원하는 위치의 하나 이상의 원소 제거

// splice 예제
Arr.splice(2, 1); // index 2 부터 1개의 원소를 제거
Arr.splice(1, 2); // index 1 부터 2개의 원소를 제거

 

 

 

댓글