🫠 이번주 갭체크 응시 후기

코테 공부를 한동안 쉬었더니 확실히 감이 떨어진게 느껴졌다..
내 약점 알고리즘들을 확인하고 보완하기 위해 슝슝🚀

내 약점은 백트래킹, BFS, DP1이라고 했고 이 부분을 보완하기 위해 관련 알고리즘 문제를 풀었다!
사실 백트래킹은 잘 시도를 안했던 문제들이었는데 갭체크를 통해 내 밑바닥이 탄로 나게 되었다ㅎㅎ
✏️ 백트래킹 기본 문제 풀기

백트래킹 중에서 easy라고 써있는 문제로 골랐는데 그럼에도 엄청 쉬워보이지가 않았다ㅎㅎ
그래도 코드트리의 좋은 점은 기본 개념이라고 해서 문제와 관련 있는 개념을 설명해주는 기능이 있다.
해당 문제는 재귀함수 관련된 내용이 기본 개념으로 주어졌다.
과정을 굉장히 꼼꼼하게 설명해서 사진이 무려 111장으로 설명이 되고 있다는 점! 정말 상세했다.

기본 개념을 토대로 문제를 아래와 같이 풀 수 있었다.
import java.util.*;
public class Main {
static int n;
static int answer = 0;
static ArrayList<Integer> temp = new ArrayList<>();
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
dfs(0);
System.out.println(answer);
}
public static void dfs(int depth) {
if (depth == n) {
if (isBeautiful())
answer++;
return;
}
for (int i = 1; i < 5; i++) {
temp.add(i);
dfs(depth + 1);
temp.remove(temp.size()-1);
}
}
static boolean isBeautiful() {
int idx = 0;
while (idx < n) {
int num = temp.get(idx);
if (idx + num > n)
return false;
for (int i = idx; i < idx + num; i++) {
if (temp.get(i) != num)
return false;
}
idx += num;
}
return true;
}
}
풀이 중 중요한 로직은
1) 우선 N자리 수를 모두 만들어서 완탐을 하도록 했다.
2) 그리고 백트래킹은 탐색 후 복구가 중요한데 이부분은 ArrayList의 add() 와 remove() 함수를 썼다.
3) 그리고 N자리의 수가 완성되면 아름다운 수인지 체크한 후 answer 값을 1씩 올려줬다.
제일 easy만 풀어본거라 난이도를 점점 높여가며 풀이를 진행할 예정이다.
🌲 코드트리의 좋은점!
코드트리를 사용하면 갭체크로 내 실력을 파악하고 약점을 찾아줘서 관련 학습을 진행할 수 있다는 점이 편리한 것 같다.
그리고 처음 시작할 때 기본 개념을 참고해서 문제 풀이를 진행할 수 있도록 한 점이 좋았다!
덕분에 해설을 안 보고 좀 더 고민해볼 수 있었다.
많은 분들도 갭체크라도 해보길 바라며 링크를 남긴다.
https://www.codetree.ai/ko/trail-info
코딩 테스트 학습 안내 | 코드트리
막막한 코딩테스트 준비, 혼자 헤매지 말고 체계적인 코딩 학습과 단계별 가이드로 빠르게 실력을 쌓아 취업에 성공하세요.
www.codetree.ai
'PS > 코드트리' 카테고리의 다른 글
| [코드트리] 청약 챌린지 6회차 후기 갭체크로 한 달 사이 실력 변화 체크하기 (0) | 2026.06.15 |
|---|---|
| [코드트리] 청약 챌린지 5회차 후기 북마크로 복습 루틴 만들기 (0) | 2026.06.08 |
| [코드트리] 청약 챌린지 4회차 후기 코딩테스트 1일 1문제 독학 루틴 만들기 (1) | 2026.05.31 |
| [코드트리] 청약 챌린지 3회차 후기 BFS 공부해서 보완하기 (0) | 2026.05.25 |