괄호 개수 카운
306
작성한 질문수 4
이런식으로 괄호의 개수를 카운트 해서 짜봤는데 괜찮은가요??
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(s){
let answer="YES";
let array1 = [];
let array2 = [];
for(let a of s){
if(a ==="(") array1.push(a);
if(a===")")array2.push(a);
}
if(array1.length!==array2.length) answer=false;
return answer;
}
let a="(()(()))(()";
console.log(solution(a));
</script>
</body>
</html>
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
제시해 주신 코드는 괄호의 개수만을 비교하여, 여는 괄호와 닫는 괄호의 개수가 일치하는지를 판별하는 접근법을 사용하고 있습니다. 이 방법은 여는 괄호와 닫는 괄호의 개수만 같다면 ‘YES’를 반환하지만, 이는 괄호의 순서가 잘못된 경우에도 ‘YES’를 반환할 수 있기 때문에 올바른 괄호 짝짓기 문제에 적절하지 않습니다.
예를 들어, 입력이 (())())인 경우에도 여는 괄호 4개, 닫는 괄호 3개로 개수는 같지 않으므로 false를 반환하겠지만, (())(() 경우에는 여는 괄호 4개, 닫는 괄호 4개로 개수가 같음에도 불구하고 올바르지 않은 괄호 구조이므로 “YES”라고 잘못 판별할 수 있습니다.
괄호 문제를 해결하기 위해서는 스택을 사용하여 여는 괄호를 만났을 때는 스택에 삽입하고, 닫는 괄호를 만났을 때는 스택에서 여는 괄호를 하나 빼내며, 이 과정에서 스택이 비어있다면 올바르지 않은 괄호로 판단하여 빠르게 ‘NO’를 반환해야 합니다. 또한, 모든 과정이 끝난 후에 스택이 비어있지 않다면, 여는 괄호가 더 많은 경우이므로 이때도 ‘NO’를 반환하게 됩니다.
다음은 스택을 사용하여 괄호 문제를 해결하는 코드의 예시입니다:
function solution(s){
let stack = [];
for(let bracket of s){
if(bracket === "("){
stack.push(bracket);
} else if(bracket === ")"){
if(stack.length === 0) return 'NO';
stack.pop();
}
}
if(stack.length > 0) return 'NO';
return 'YES';
}
let a = "(()(()))(()";
console.log(solution(a)); // 'NO'
이 코드는 괄호의 개수 뿐만 아니라, 순서까지 고려하여 올바른 괄호 구조를 판단합니다. 위 코드에서는 ‘NO’를 정확하게 반환하고 있음을 확인할 수 있습니다.
continue를 사용하는 이유
0
79
2
정렬 가능 여부 판단하기
0
64
2
알고리즘 학습법 관련해서 질문드립니다.
0
86
1
코드 리뷰 부탁드립니다!
0
90
1
indexOf를 사용해서 풀어보았습니다 !!
0
68
1
저는 이런식으로 구현 해보았습니다 !!
0
64
1
12,13,14 강의 소리만 나오고 검은 화면입니다
0
100
3
반복문 최소화하고 indexOf 사용해서 풀어봤습니다
0
63
1
영상 보기 전에 직접 풀어봤습니다.
0
74
1
섹션1의 17번문제 이 풀이로 풀어도 될까요?
0
136
2
정규표현식으로 처리해도 상관없나요 ?
0
120
2
3칸씩 건너뛸 수 있을 경우
0
125
2
강의에 대해 질문있습니다.
0
135
2
Object와 Set을 이용해 풀어봤습니다.
0
117
2
이렇게 해도 되나요?
0
102
2
선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.
0
145
2
이렇게 풀어도 괜찮을까요?
0
138
1
이렇게 풀어도 괜찮을까요?
0
112
1
모든 아나그램 찾기에서 시간복잡도
0
98
1
코드리뷰 부탁드립니다.
0
130
1
for loop 탈출은 return 문으로 해도 되지 않나요?
0
133
1
투포인트알고리즘으로 풀어봤습니다.
0
142
0
코드 리뷰 부탁드립니다.
0
120
1
코드 맞게 작성한 거 아닌가여??
0
146
1





