[알고리즘] 올바른 괄호 - stack
문제
괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다.
(())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다.
✏️ 입력설명
첫 번째 줄에 괄호 문자열이 입력됩니다. 문자열의 최대 길이는 30이다.
✏️ 출력설명
첫 번째 줄에 YES, NO를 출력한다.
✏️ 입력예제 1
(()(()))(()
✏️ 출력예제 1
NO
풀이
// 여는 괄호 "("와 닫는 괄호 ")"의 개수가 같으면 올바른 괄호
function solution(s){
let sw = 0; // switch 변수 sw
for(let i in s){
if(s[i] ==="(") sw = sw+1; // 여는 괄호는 sw+1
else sw -= 1; // 닫는 괄호는 sw-1
console.log(i,"번 째 문자열 :",s[i],", sw의 값 : ",sw);
}
console.log("================================");
if (sw === 0) return "YES"; // switch 변수가 0이면 올바른 괄호
else return "NO";
}
let a="(()(()))(()";
console.log(solution(a));
✏️ 문제 출처
Author And Source
이 문제에 관하여([알고리즘] 올바른 괄호 - stack), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@newsilver1028/알고리즘-올바른-괄호-stack저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)