프로그래머스/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;
}
반응형