step 2 - 3. 올바른 괄호의 개수
내가 떠올린 풀이 해설
괄호를 보고 stack을 이용해서 풀려고 했는데 괄호 문자를 입력으로 주지 않아 DFS의 성질을 이용해 풀었다. 올바른 괄호의 짝 중에, '('로 시작했으면 ')'로 끝나는 성질을 이용해 ')'의 개수가 '('보다 많으면 올바르지 않은 식으로 간주하고, 이 모든 경우의 수를 dfs로 찾았다.
https://tosuccess.tistory.com/173
[프로그래머스 level_4] 올바른 괄호의 갯수 for JAVA
programmers.co.kr/learn/courses/30/lessons/12929 코딩테스트 연습 - 올바른 괄호의 갯수 올바른 괄호란 (())나 ()와 같이 올바르게 모두 닫힌 괄호를 의미합니다. )(나 ())() 와 같은 괄호는 올바르지 않은 괄..
tosuccess.tistory.com
정확한 풀이
import java.util.*;
public class step2_3 {
static int answer;
public static void main(String[] args) {
int n = 2;
answer = 0;
DFS(0, 0, n);
System.out.println(answer);
}
private static void DFS(int left, int right, int n) {
if(left < right) {
return;
}
if(left == n && right == n) {
answer++;
return;
}
if(left > n || right > n) {
return;
}
DFS(left + 1, right, n);
DFS(left, right + 1, n);
}
}
오늘의 회고
오늘은 프로그래머스 3주 차 문제를 풀었습니다. DFS를 이용해서 푸는 문제였다. DFS 문제라고 떠올리기는 했지만 문제를 해결하는 방법의 아이디어가 떠오르지 않았다... 좀 더 넓은 방식으로 문제를 해결해야 되는데 어떻게 공부해야 될지 잘 모르겠다.ㅠㅠ
'알고리즘 > 프로그래머스 커뮤러닝' 카테고리의 다른 글
[커뮤러닝/6기] 3주차 step 2 - 4. 정수 삼각형 (0) | 2022.07.23 |
---|---|
[커뮤러닝/6기] 3주차 step 2 - 2. 게임 맵 최단거리 (0) | 2022.07.21 |
[커뮤러닝/6기] 3주차 step 2 - 1. 위장 (0) | 2022.07.20 |
[커뮤러닝/6기] 1주차 step 1 - 4. 숫자 게임 (0) | 2022.07.10 |
[커뮤러닝/6기] 1주차 step [1 - 2 ~ 1 - 3] 가장 큰 수, 예산 (0) | 2022.07.07 |