Development/알고리즘

[프로그래머스 | Javascript] Lv.2 올바른 괄호

레오나르도 다빈츠 2024. 1. 8. 23:11

 

 

 

 

 

 

 

 


 

 

💬 문제 설명

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

 

 

 

🗝 내가 푼 코드

stack을 사용해서 풀었다. 효율성 검사 잘 통과 ,, 👍🏻

이건 알고리즘 책에서 스택에 대한 예제로 본 적이 있는 방법이었다.

function solution(text){    
    const result = []
    let answer = true
    
    text.split('').map((obj) => {
        if (obj === '(') {
            result.push(obj)
        } else {
            if (result.length === 0) answer = false
            result.pop()
        }
    })
    
    return result.length === 0 && answer
}

 

 

2트는 다른 사람의 풀이를 봤는데 숫자를 빼고 더하는 형태로 풀어서 적용해봤다.

function solution(text){    
    let answer = 0
    let result = true
    
    text.split('').map((obj) => {
        if (obj === '(') {
            answer++
        } else {
            answer--
            if (answer < 0) return result = false
        }
    })
    
    return answer === 0 && result
}