안녕하세요. 탁입니다.

첫 게시글로 어떤 내용을 작성할지 고민이 많았습니다. 약간 만만하게(?) 시리즈로 꾸준히 작성할 주제가 마땅치 않던차에, 요즘 신입 채용 시즌이 되면서 스레드에 코딩테스트 관련 게시글이 보이기 시작하여 저도 무임승차를 해볼까 합니다.

취업 후에도 얼마간은 퀴즈나 퍼즐 풀듯이 꾸준히 학습했었는데 벌써 공부하지 않은지 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에 접속 & 새 노트 만들기

이미지 로딩 중...
image

새 노트 만들기를 통해 새로운 작업공간을 만들 수 있습니다. Gemini Notebook에서는 각각의 Note가 벡터화된 DB가 됩니다.

2. 소스 업로드하기

이미지 로딩 중...
image

생성된 노트에 처음 진입하면 사진과 같습니다. 검색창에 검색을 하면 구글 검색 엔진을 통해서 각종 웹사이트나 문서 pdf, 유튜브 링크까지 찾아옵니다.

간략한 예시를 보이자면 아래와 같이 입력했을 때

"대기업 IT 직무 신입 채용에서 활용하는 코딩테스트 알고리즘 시험의 유형, 난이도, 중요도, 빈출도별 문제풀이와 기출문제. 코딩테스트 통과를 위한 학습자료."
이미지 로딩 중...
image

여기에서 선택하고 소스를 업로드하면 해당 노트에서는 소스를 기반으로 답변을 생성하게 됩니다.

이미지 로딩 중...
image

소스를 기반으로 답변을 도출하고, 도출된 내용을 다시 소스에 넣는 과정을 반복하며 소스의 품질을 끌어올리고, 슬라이드 자료나 AI 오디오 오버뷰를 생성하여 출퇴근 시간에 짬내서 학습하기에도 용이합니다.

3. Gemini 연동하기

이미지 로딩 중...
image

Gemini Notebook을 생성했다면 Gemini에서 노트북을 찾고 이번에 생성한 노트를 클릭합니다.

여기에서 질의하면 Gemini Notebook 내에서 질의하는 것과는 약간 다르게, 직접 모델과 추가 도구들을 선택하여 산출물을 만들어 낼 수 있습니다.

4. 참고

저는 예시로 이렇게 작업했지만, 학습이 필요한 유형을 모두 도출해냈다면, 유형별로 노트를 별도로 구성하여 유형별 문제를 모아서 학습자료를 만드는 것도 좋은 방법이 되겠습니다.

프로그래머스 코딩테스트 고득점 Kit 학습에 앞서서

특히 취업준비생분들 입장에서 하나의 프로그래밍 언어도 버겁게 느껴질 수 있지만, '오로지 코딩테스트 합격'만을 위해서라도 파이썬으로 코딩테스트를 준비하는 것을 추천드립니다.

파이썬은 자료형 선언 같은 부분에서 이점이 많아서 기초 문법을 학습하기에도 다른 언어보다 쉬운 편이고 직관적입니다.

저희 회사는 1년에 4번까지 PCCP라는 프로그래머스에서 진행하는 코딩테스트를 응시합니다. 여기서 받은 점수는 개인 성과를 평가하는 지표에 포함이 되기도 하는데요. 입사 후 파이썬을 업무에 이용한 기간은 3달이 안되고, 모두 Java나 C#, javascript 계열의 프레임워크만 사용했었음에도 저는 항상 파이썬으로 응시를 하고 있습니다.

편한 것으로 시험을 응시하는게 맞을 수 도 있지만, Python으로 준비하는 것을 강력 추천드리니 한 번 고민해보시구요!

Gemini가 추천하는 21가지 핵심 코딩테스트 알고리즘 유형

각 알고리즘별로 Gemini Notebook과 Gemini를 통해서 도출해낸 핵심 기본 내용을 마지막으로 공유하며 글을 마무리해봅니다.

앞으로 시리즈로 꾸준히 한문제씩 올리고, 더 질 좋고 재미난 포스팅으로 찾아뵙겠습니다. 감사합니다.

5열 × 21
우선순위알고리즘 유형명난이도빈출도핵심 특징 및 출제 포인트
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개의 인덱스를 활용해 (O(N2)(O(N^2)) 탐색 범위를 (O(N)(O(N))으로 최적화
2순위이분 탐색중 ~ 중상보통정렬된 데이터에서 최적화 문제를 결정 문제(Yes/No)로 바꿔 탐색
2순위탐욕 (Greedy)중상보통매 단계 가장 이로운 선택을 취함, 구간 커버 및 정당성 검증 수반
2순위동적계획법 (DP)보통중복 연산을 캐싱(메모이제이션), 점화식 설계, Knapsack 배낭 문제
2순위누적 합하 ~ 중보통2차원 사각형 구간합 쿼리를 inclusion-exclusion 방식으로 (O(1)(O(1))에 해결
3순위최단 경로 알고리즘낮음 ~ 보통가중치 그래프 탐색, 다익스트라((O((V+E)logV)(O((V+E)\log V))) 및 플로이드, 벨만포드
3순위서로소 집합 & 유니온-파인드낮음 ~ 보통분리된 집합들의 대표 노드 확인 및 병합, 경로 압축 및 랭크 결합 최적화
3순위그래프중상 ~ 상보통인접 리스트 활용 정점/간선 구성, 트리 최단 지름 및 컴포넌트 관리
3순위위상 정렬중상 ~ 상낮음 ~ 보통선행 원소가 있는 방향 비순환 그래프(DAG)의 순서 정렬(진입 차수 활용)
4순위비트마스킹중 ~ 상낮음이진수 비트 조작(AND/OR/XOR), 원소 추가/삭제/체크를 통한 상태 압축
4순위정수론 / 수학하 ~ 상낮음 ~ 보통에라토스테네스의 체(소수 구하기), GCD 유클리드 호제법, 조합론
4순위트라이 (Trie)최상낮음중첩 딕셔너리를 활용해 다량의 문자열 검색 속도 최적화
4순위세그먼트 트리 / 펜윅 트리최상낮음데이터 변경이 빈번한 구간 쿼리를 (O(logN)(O(\log N))으로 처리, 비재귀 구조