Binary Journey

[프로그래머스] 올바른 괄호 본문

프로그래머스/level 2

[프로그래머스] 올바른 괄호

binaryJournalist 2021. 12. 7. 21:26
반응형

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

 

 

 

 

자바스크립트로 먼저 풀던 내가 이젠 파이썬으로 먼저 푼다

 

파이썬이 훨씬 간편함

 

 

** Python (+5)

 

def solution(s):
    r = "".join(s.split("()"))
    return r == "" or (r.count("(") == r.count(")") and r[0] == "(" and r[-1] == ")")

 

 

정규식 안 쓰고 풀기 성공!

 

(아래 자바스크립트 취향 저격 코드를 파이썬으로도 풀었는데 위의 식이 속도가 더 빨랐다.)

 

def solution(s):
    pair = 0
    for c in s:
        pair += 1 if c == "(" else -1
        if pair < 0: return False
    return pair == 0

 

 

 

** Javascript

 

자바스크립트는 정규식 결국 씀

 

function solution(s){
    const r = s.split("()").join("");
    return r === "" || (r.startsWith("(") && r.endsWith(")") && (r.match(/\(/g) || []).length === (r.match(/\)/g) || []).length);
}

 

 

 

다른 풀이 중 취향 저격이었던 코드

그리고 자바스크립트로는 이게 더 빨랐다.

function solution(s){
    let pair = 0
    for (let c of s) {
        pair += c === '('? 1: -1
        if(pair < 0) {
            return false
        }
    }
    return pair === 0;
}
반응형