문제🔽
https://school.programmers.co.kr/learn/courses/30/lessons/12909
다른사람 풀이 🔽
function solution(s){
let cum = 0
for (let paren of s) {
cum += paren === '('? 1: -1
if(cum < 0) {
return false
}
}
return cum === 0? true: false;
}
내풀이🔽
// 문자열의 index가 0부터 끝까지 순회할때 항상 "("개수는 ")" 개수보다 그 이상이어야 한다
// 그리고 마지막 index까지 순회 할 시 "("의 개수와 ")"의 개수는 항상 같아야 한다
function solution(s){
var answer = true;
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
let length = s.length;
let index = 0;
let num1 = 0;
let num2 = 0;
while(answer===true&&index<=length-1){
if(s[index]==="("){
++num1
}else{
++num2
}
if(index==length-1){
if(num1!==num2){
answer=false;
}
}else{
if(num1<num2){
answer=false;
}
}
++index
}
return answer;
}
느낀점😮
생각보다 쉽게 풀었다. 여기서 핵심개념은 어떻게 하면 정상적인 문자열이 되는지에 대한 원리를 아는 것인데 생각보다 쉽게 알아 낼 수 있었다. 풀이를 마친 후 다른 사람의 풀이를 봤는데 굉장히 짧아서 놀랐다.