Algorithms/- 프로그래머스
프로그래머스 - 올바른 괄호의 갯수 [자바]
자굿
2022. 3. 15. 23:07
- 문제 링크 : 올바른 괄호의 갯수
코딩테스트 연습 - 올바른 괄호의 갯수
올바른 괄호란 (())나 ()와 같이 올바르게 모두 닫힌 괄호를 의미합니다. )(나 ())() 와 같은 괄호는 올바르지 않은 괄호가 됩니다. 괄호 쌍의 개수 n이 주어질 때, n개의 괄호 쌍으로 만들 수 있는 모
programmers.co.kr
정답(Solution)
import java.util.*;
class Solution {
private class P {
int open, close;
P(int open, int close){
this.open = open;
this.close = close;
}
}
public int solution(int n) {
int answer = 0;
Stack<P> st = new Stack<>();
st.push(new P(0,0));
while(!st.isEmpty()){
P p = st.pop();
if(p.open > n) continue;
if(p.open < p.close) continue;
if(p.open + p.close == 2 * n) {
answer++;
continue;
}
st.push(new P(p.open + 1, p.close));
st.push(new P(p.open, p.close + 1));
}
return answer;
}
}
분석
- dfs로 풀이하였다.
- dfs는 기본적으로 Stack을 사용한다.
반응형