[프로그래머스 자바스크립트] ‘올바른 괄호’ 풀어보기

2025. 1. 7. 23:02·Algorithm/Programmers(JavaScript)

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12909

1. 문제를 보고 든 생각

‘(’이 먼저 나오고, 그리고 나중에 ‘)’으로 이 괄호가 닫혀야한다.

그렇다면, 알 수 있는 사실은

  1. ‘)’이 먼저 나오면 안된다.
  2. ‘(’의 개수와 ‘)’의 개수는 같아야한다.

그렇다면 0으로 시작하는 변수를 두고, ‘(’이 나오면 1을 더해주고, ‘)’이 나오면 1을 빼주면 될 것 같다.

‘)’이 먼저 나오면 안된다고 했다. → 이 경우는 해당 변수가 음수가 되는 경우이므로 음수가 되면 바로 false를 return 해주면 될 것 같다.

 


2. 풀이

function solution(s){
    
    
    let count = 0;
    
    for(let index = 0; index < s.length; index++) {
        if(s[index] === '(') {
            count++;
        }
        else if (s[index] === ')') {
            count--;
        }
        
        if(count < 0) {
            return false;
        }
        
    }
    
    if(count === 0) {
        return true;
    }
    else {
        return false;
    }
}

먼저 든 생각대로 코드를 작성했더니 정답이었다!!

 

 

나는 count라는 변수를 활용해서 문제를 풀었지만, 스택을 활용해서 문제를 푸는게 정석인 것 같다.

 

스택을 활용한다면 아래 코드처럼 작성하면 될 것 같다.

function solution(s) {
    const stack = [];
    
    for(let char of s) {
        if(char === '(') {
            stack.push(char);
        } else if(char === ')') {
            if(stack.length === 0) return false;
            stack.pop();
        }
    }
    
    return stack.length === 0;
}
저작자표시 비영리 변경금지 (새창열림)

'Algorithm > Programmers(JavaScript)' 카테고리의 다른 글

[프로그래머스 자바스크립트] ‘가장 큰 수’ 풀어보기  (0) 2025.01.20
[프로그래머스 자바스크립트] ‘모의고사’ 풀어보기  (0) 2025.01.11
[프로그래머스 자바스크립트] ‘입국심사’ 풀어보기  (0) 2024.12.31
[프로그래머스 자바스크립트] ‘최소직사각형’ 풀어보기  (2) 2024.08.07
[프로그래머스 자바스크립트] ‘K번째수’ 풀어보기  (1) 2024.08.07
'Algorithm/Programmers(JavaScript)' 카테고리의 다른 글
  • [프로그래머스 자바스크립트] ‘가장 큰 수’ 풀어보기
  • [프로그래머스 자바스크립트] ‘모의고사’ 풀어보기
  • [프로그래머스 자바스크립트] ‘입국심사’ 풀어보기
  • [프로그래머스 자바스크립트] ‘최소직사각형’ 풀어보기
퀵차분
퀵차분
Web Developer 🥐
  • 퀵차분
    QC's Devlog
    퀵차분
  • 전체
    오늘
    어제
    • 분류 전체보기 (178) N
      • Frontend (31)
      • Fedify (4)
      • Study (42)
        • NestJS (2)
        • Node.js (3)
        • Modern JS Deep Dive (13)
        • SQL (1)
        • Network (1)
        • 프롬프트 엔지니어링 (4)
        • 인공지능 (9)
        • 시스템프로그래밍 (11)
        • 선형대수학 (1)
      • Intern (4)
      • KUIT (21)
      • Algorithm (48)
        • Baekjoon(C++) (26)
        • Programmers(JavaScript) (22)
      • 우아한테크코스(프리코스) (4)
      • Project (10) N
        • crohasang_page (3) N
        • PROlog (4)
        • Nomadcoder (2)
      • 생각 (4)
      • Event (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    음악추천
    백준
    프로그래머스
    프로그래머스 자바스크립트
    인공지능
    typescript
    알고리즘
    오블완
    javascript
    fedify
    react
    프론트엔드
    KUIT
    티스토리챌린지
    시스템프로그래밍
    HTML
    next.js
    타입스크립트
    리액트
    자바스크립트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
퀵차분
[프로그래머스 자바스크립트] ‘올바른 괄호’ 풀어보기
상단으로

티스토리툴바