챌린지/프로그래머스 챌린지
[프로그래머스] LV.2 올바른 괄호
Kkan
2023. 7. 5. 23:04
728x90
반응형
🍕 문제풀이 1차 시도
const solution = (s) => {
let answer = 0;
const sArr = [...s];
for(let i = 0; i < sArr.length; i++) {
if(sArr[i] === '(') {
answer++;
} else {
answer--;
}
if (answer < 0) {
return false;
}
}
return !answer;
}
효율성 테스트 탈락!
🍕 문제풀이 2차 시도
const solution = (s) => {
let answer = 0;
let sArr = [...s];
for(let i = 0; i < sArr.length; i++) {
sArr[i] === '('
? answer++
: answer--
if (answer < 0) {
return false;
}
}
return !answer;
}
효율성 테스트 탈락!
🍕 문제풀이 3차 시도
const solution = (s) => {
let answer = 0;
for(let i = 0; i < s.length; i++) {
s[i] === '(' ? answer++ : answer--
if (answer < 0) {
return false;
}
}
return !answer;
}
효율성 테스트까지 성공!
🍕 해석
스택과 큐의 문제인 만큼 이를 활용해준다.
배열을 순회하면서 앞에서부터 + / - 를 실행한다.
정상적인 짝을 가지고 있다면 0(falsy) 아니면 1(trusy)
이때 ! 연산자로 뒤집어 주면 완성!
🍕 기타
효율성 테스트...
굳이 배열로 다시 만들어서 사용했다.
=> 문자열은 유사 배열이기 때문에 안해도 될 짓.
728x90
반응형