🐣 INTRO
- 자바스크립트 강의를 통해서 풀어봤지만, 예제가 몇 개 없어서 내가 푼 방법이 확실한지 알 수가 없었다. 그래서 프로그래머스에 있는 똑같은 문제를 다시 풀어봤다.
👩🏻💻 내가 푼 코드
function solution(s){
var answer = true;
var stack = [];
for (x of s) {
if (x === "(") {
stack.push("(")
} else if ( x === ")") {
if (stack.length > 0) stack.pop();
else {
answer = false;
break // answer이 false가 나왔으면 중단해도 됨!
}
}
}
if (stack.length > 0) {
answer = false;
}
return answer;
}
- 일단
javascript
코드에서는 if (stack)
이 통하지 않는다... => 정확성 2, 6번 통과안됨
- 파이썬으로 익숙해져서 저렇게 했더니 통과하지 않았다.
if (stack.length > 0)
으로 하니까 통과
- 추가)
if (stack.length)
로 하면 된다. 하지만 효율성 1번이 통과가 안됨!
break
코드를 넣지 않아서 시간 초과가 났다... => 효율성 2번 통과안됨
answer
이 false
가 되자마자 바로 for
문이 끝나도 되기 때문에 break
를 넣어줘서 바로 끝내주기!