안녕하세요. 탁입니다.
첫 게시글로 어떤 내용을 작성할지 고민이 많았습니다. 약간 만만하게(?) 시리즈로 꾸준히 작성할 주제가 마땅치 않던차에, 요즘 신입 채용 시즌이 되면서 스레드에 코딩테스트 관련 게시글이 보이기 시작하여 저도 무임승차를 해볼까 합니다.
취업 후에도 얼마간은 퀴즈나 퍼즐 풀듯이 꾸준히 학습했었는데 벌써 공부하지 않은지 3년이 넘었네요.
저는 올해 남들이 전부 클로드와 코덱스를 애용할 때 혼자서 꾸준히 제미나이를 사용해왔는데요. 이번 시리즈도 이 제미나이를 이용해서 진행해보겠습니다.
정확히는, 구글의 Gemini Notebook (구. NotebookLM)과 Gemini를 연동하여 학습에 이용하는 방법입니다.
코딩테스트 준비에 왜 Gemini Notebook을 추천하는가?
Gemini Notebook(구 NotebookLM)은 사용자가 직접 업로드한 문서와 웹 자료를 기반으로 동작하는 출처 기반 RAG(검색 증강 생성) 서비스입니다. 일반 LLM과 달리 내가 지정한 알고리즘 유형, 기출문제, 공식 해설 자료 내에서만 답변을 도출하므로 할루시네이션(환각) 없는 단계적 힌트 학습이 가능합니다. 특히 방대한 컨텍스트 창(Context Window)을 지원하여 수십 개의 코딩테스트 기출 지문과 풀이 코드를 한 번에 벡터화해 나만의 맞춤형 알고리즘 튜터로 활용할 수 있습니다.
일단 Gemini Notebook을 사용해보지 않으신 분들께, 구글의 무료 플랜이어도 어느 정도 사용이 가능하기 때문에 강력한 추천을 드리면서 저의 경험을 공유드리겠습니다.
아무리 쉬운 시험이어도 벼락치기로 학습을 하는 과정에서는 절대적인 시간이 부족하죠. 저는 이미 올해 3개의 국가 공인 시험을 합격했습니다. 물론, 쉬운 시험이 섞여있었죠.
SQLD, DAsP, 온실가스관리기사 필기.. 아무리 쉽더라도 묠니르를 통해 내리꽂는 벼락마냥 짧은 기간을 준비했는데, 합격할 수 있었던 비결은 Gemini Notebook을 통해 벡터화한 기출유형과 시험범위가 한 몫을 했다고 믿습니다.
이 때 학습에 이용한 자료들도 기회가 된다면 게시글로 올려보겠습니다.
아무튼, 제가 사용하는 방법을 통해 학습 자료를 만드는 것까지 이번 포스팅에 담아볼 생각입니다.
Gemini Notebook으로 학습자료 만들기
우선 간략하게 Gemini Notebook 사용법을 캡처 이미지로 남겨두었습니다.
1. Gemini Notebook에 접속 & 새 노트 만들기
새 노트 만들기를 통해 새로운 작업공간을 만들 수 있습니다. Gemini Notebook에서는 각각의 Note가 벡터화된 DB가 됩니다.
2. 소스 업로드하기
생성된 노트에 처음 진입하면 사진과 같습니다. 검색창에 검색을 하면 구글 검색 엔진을 통해서 각종 웹사이트나 문서 pdf, 유튜브 링크까지 찾아옵니다.
간략한 예시를 보이자면 아래와 같이 입력했을 때
"대기업 IT 직무 신입 채용에서 활용하는 코딩테스트 알고리즘 시험의 유형, 난이도, 중요도, 빈출도별 문제풀이와 기출문제. 코딩테스트 통과를 위한 학습자료."
여기에서 선택하고 소스를 업로드하면 해당 노트에서는 소스를 기반으로 답변을 생성하게 됩니다.
소스를 기반으로 답변을 도출하고, 도출된 내용을 다시 소스에 넣는 과정을 반복하며 소스의 품질을 끌어올리고, 슬라이드 자료나 AI 오디오 오버뷰를 생성하여 출퇴근 시간에 짬내서 학습하기에도 용이합니다.
3. Gemini 연동하기
Gemini Notebook을 생성했다면 Gemini에서 노트북을 찾고 이번에 생성한 노트를 클릭합니다.
여기에서 질의하면 Gemini Notebook 내에서 질의하는 것과는 약간 다르게, 직접 모델과 추가 도구들을 선택하여 산출물을 만들어 낼 수 있습니다.
4. 참고
저는 예시로 이렇게 작업했지만, 학습이 필요한 유형을 모두 도출해냈다면, 유형별로 노트를 별도로 구성하여 유형별 문제를 모아서 학습자료를 만드는 것도 좋은 방법이 되겠습니다.
프로그래머스 코딩테스트 고득점 Kit 학습에 앞서서
특히 취업준비생분들 입장에서 하나의 프로그래밍 언어도 버겁게 느껴질 수 있지만, '오로지 코딩테스트 합격'만을 위해서라도 파이썬으로 코딩테스트를 준비하는 것을 추천드립니다.
파이썬은 자료형 선언 같은 부분에서 이점이 많아서 기초 문법을 학습하기에도 다른 언어보다 쉬운 편이고 직관적입니다.
저희 회사는 1년에 4번까지 PCCP라는 프로그래머스에서 진행하는 코딩테스트를 응시합니다. 여기서 받은 점수는 개인 성과를 평가하는 지표에 포함이 되기도 하는데요. 입사 후 파이썬을 업무에 이용한 기간은 3달이 안되고, 모두 Java나 C#, javascript 계열의 프레임워크만 사용했었음에도 저는 항상 파이썬으로 응시를 하고 있습니다.
편한 것으로 시험을 응시하는게 맞을 수 도 있지만, Python으로 준비하는 것을 강력 추천드리니 한 번 고민해보시구요!
Gemini가 추천하는 21가지 핵심 코딩테스트 알고리즘 유형
각 알고리즘별로 Gemini Notebook과 Gemini를 통해서 도출해낸 핵심 기본 내용을 마지막으로 공유하며 글을 마무리해봅니다.
앞으로 시리즈로 꾸준히 한문제씩 올리고, 더 질 좋고 재미난 포스팅으로 찾아뵙겠습니다. 감사합니다.
| 우선순위 | 알고리즘 유형명 | 난이도 | 빈출도 | 핵심 특징 및 출제 포인트 |
|---|---|---|---|---|
| 1순위 | 시뮬레이션 & 2차원 격자 구현 | 중 ~ 상 | 최상 | 문제 조건 그대로 구현, dy/dx 방향 벡터 활용, 격자 회전 및 상태 관리 |
| 1순위 | 완전탐색 | 중 | 높음 | 모든 경우의 수 탐색, 재귀(DFS) 상태 트리 탐색 및 Pruning 가지치기 |
| 1순위 | 깊이/너비 우선 탐색 (DFS/BFS) | 중 ~ 중상 | 높음 | 2차원 격자 최단 거리(BFS), 연결 요소 탐색, deque 활용 탐색 |
| 1순위 | 해시 | 하 ~ 중 | 높음 | Key-Value 쌍의 빠른 데이터 조회, 빈도 집계 및 중복 원소 관리 |
| 1순위 | 정렬 | 하 | 높음 | lambda 다중 기준 정렬 적용, 정렬 보존 상태 기반의 다른 알고리즘 연계 |
| 1순위 | 스택/큐 | 하 | 보통 | 괄호 쌍 검증, FIFO/LIFO 매커니즘, 단조 스택 기반 인접 요소 비교 |
| 1순위 | 문자열 파싱 & 정규표현식 | 중 | 보통 ~ 높음 | 카카오 빈출, 문자열 토큰화/대치/정규식 매칭 및 자료형 안전한 파싱 |
| 2순위 | 힙 | 하 ~ 중 | 보통 | 실시간 최댓값/최솟값 보존, heapq 기반 그리디 스케줄링 처리 |
| 2순위 | 투 포인터 & 슬라이딩 윈도우 | 중 | 보통 ~ 높음 | 2개의 인덱스를 활용해 ) 탐색 범위를 )으로 최적화 |
| 2순위 | 이분 탐색 | 중 ~ 중상 | 보통 | 정렬된 데이터에서 최적화 문제를 결정 문제(Yes/No)로 바꿔 탐색 |
| 2순위 | 탐욕 (Greedy) | 중상 | 보통 | 매 단계 가장 이로운 선택을 취함, 구간 커버 및 정당성 검증 수반 |
| 2순위 | 동적계획법 (DP) | 상 | 보통 | 중복 연산을 캐싱(메모이제이션), 점화식 설계, Knapsack 배낭 문제 |
| 2순위 | 누적 합 | 하 ~ 중 | 보통 | 2차원 사각형 구간합 쿼리를 inclusion-exclusion 방식으로 )에 해결 |
| 3순위 | 최단 경로 알고리즘 | 상 | 낮음 ~ 보통 | 가중치 그래프 탐색, 다익스트라()) 및 플로이드, 벨만포드 |
| 3순위 | 서로소 집합 & 유니온-파인드 | 상 | 낮음 ~ 보통 | 분리된 집합들의 대표 노드 확인 및 병합, 경로 압축 및 랭크 결합 최적화 |
| 3순위 | 그래프 | 중상 ~ 상 | 보통 | 인접 리스트 활용 정점/간선 구성, 트리 최단 지름 및 컴포넌트 관리 |
| 3순위 | 위상 정렬 | 중상 ~ 상 | 낮음 ~ 보통 | 선행 원소가 있는 방향 비순환 그래프(DAG)의 순서 정렬(진입 차수 활용) |
| 4순위 | 비트마스킹 | 중 ~ 상 | 낮음 | 이진수 비트 조작(AND/OR/XOR), 원소 추가/삭제/체크를 통한 상태 압축 |
| 4순위 | 정수론 / 수학 | 하 ~ 상 | 낮음 ~ 보통 | 에라토스테네스의 체(소수 구하기), GCD 유클리드 호제법, 조합론 |
| 4순위 | 트라이 (Trie) | 최상 | 낮음 | 중첩 딕셔너리를 활용해 다량의 문자열 검색 속도 최적화 |
| 4순위 | 세그먼트 트리 / 펜윅 트리 | 최상 | 낮음 | 데이터 변경이 빈번한 구간 쿼리를 )으로 처리, 비재귀 구조 |





댓글 (0개)