문제요약
나의 코드 및 설명 (효율성 TC2 시간초과)
function solution(s){
var answer = true;
var stack = [];
for (var i = 0; i < s.length; i++){
if (s[i] == "(") {
stack.push("(");
} else {
if (stack[stack.length - 1] == "(") {
stack.pop();
} else {
stack.push(")");
}
}
}
if (stack.length == 0){
answer = true;
} else {
answer = false;
}
return answer;
}
다른 코드 및 설명
function solution(s){
var answer = true;
var stack = [];
s.split("").map(string => {
if (string === ')' && stack[stack.length-1] === '('){
stack.pop();
} else {
stack.push(string);
}
})
if (stack.length == 0) {
answer = true;
} else {
answer = false;
}
return answer;
}
피드백
map() 함수는 새로운 배열을 생성하는 역할뿐만 아니라, 단순히 배열의 요소를 순회하면서 조건에 맞는 정답을 도출할 수 있다는 것을 확인할 수 있었다.
'Programmers > Lv2' 카테고리의 다른 글
[프로그래머스/JS] 귤 고르기 (Lv2) (0) | 2023.08.04 |
---|---|
[프로그래머스/JS] N개의 최소 공배수 (Lv2) / 유클리드 호제법 (0) | 2023.08.04 |
[프로그래머스/JS] 멀리 뛰기 (Lv2) / DP (0) | 2023.08.04 |
[프로그래머스/JS] JadenCase 문자열 만들기 (Lv2) (0) | 2023.08.04 |
[프로그래머스] 큰 수 만들기 (Lv2) / 그리디, stack 활용 (0) | 2023.06.17 |