전체 글 251

[정글 알고리즘]-[중]-백준 1914 하노이 탑 - 재귀

📌 01 하노이 탑 02 외판원 순회 골드 5 · 재귀 [백준 1914] 하노이 탑재귀의 정수를 맛보다 cedis · 2026.03 | Python · 재귀 · 수학 재귀를 처음 배울 때 항상 따라오는 문제가 있다. 하노이 탑이다. 코드는 딱 10줄인데, 처음 보면 도대체 어떻게 돌아가는지 전혀 안 보인다. 이 글은 그 "왜 이게 되지?" 를 끝까지 파헤친 기록이다. 🔗 문제 링크: 백준 1914번 - 하노이 탑 N개의 원판을 기둥 1에서 기둥 3으로 옮기는 이동 횟수와 과정을 출력하라. 단, 큰 원판이 작은 원판 위에 놓일 수 없다. (N ≤ 100) ① 하노이 탑 규칙 기둥이 3개, 원판이 N개 있다. 규칙은 딱 두 가지다..

바이브코딩으로 하루 만에 팀 프로젝트 완성하기 — Clean Email 회고

크래프톤 정글 × 오픈AI 워크숍 회고 바이브코딩으로 팀이 같이 달리려면 어떻게 해야 할까 AI가 코드를 짜주는 시대, 협업은 오히려 더 어려워졌다. 하루 동안 세 명이 부딪히며 찾아낸 방법. 📅 2026.03 👥 3인 팀 ⏱️ 하루 📦 Clean Email Prologue 사실 이 글을 쓰기가 조금 쑥스럽다. 하루 만에 만든 프로젝트다. 내놓기엔 허술한 구석도 있다. 그런데 이 하루가 생각보다 많은 것을 남겼다. 특히 "AI랑 같이 코딩하는데, 팀이 어떻게 협업하지?" 라는 물음. 그 고민의 과정을 기록해두고 싶었다. · · · 🌿 시작은 크래프톤 정글 오픈AI 워크숍 크래프톤 정..

개발/프로젝트 2026.03.12

[정글 알고리즘] -[중]-[백준 9663] N-QueenDFS

정글 알고리즘 · 중 [백준 9663] N-QueenDFS 백트래킹 완전 정복 cedis · 2026.03.10 | Python · 백트래킹 · DFS 백트래킹 하면 항상 나오는 문제가 있다. N-Queen이다. 처음 봤을 때는 "체스판에 퀸 N개를 놓는다"는 말만 들었는데, 막상 어떻게 풀어야 할지 감이 안 잡혔다. 이 글은 그 감을 잡는 과정을 처음부터 하나씩 따라가는 기록이다. 🔗 문제 링크: 백준 9663번 - N-Queen N×N 크기의 체스판에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 구하라. ① 퀸은 어떻게 공격하나 체스의 퀸은 가로, 세로, 대각선 방향으로 몇 칸이든 이동할 수 있다. 즉, 같은 행, 같은 열, 같은 대각선에 두 번..

[정글 알고리즘]-[중]-백준 10819 차이를 최대로 - DFS 백트래킹

크래프톤 정글 · 백준 10819차이를 최대로순열(Permutation) × DFS 백트래킹 — 최적 배열 순서 찾기BEFOREif not used[i]: # 단순 반복 dfs(depth + 1)→AFTERpath.append(a[i]) # 선택dfs(depth + 1) # 탐색path.pop() # 복원 ✔처음에는 단순히 모든 경우를 시도하면 된다고 생각했다. 배열 길이가 최대 8이니까 8! = 40,320가지. 완전 탐색이 충분하다. 그런데 막상 DFS로 짜다 보니 백트래킹의 핵심 패턴을 빠뜨렸다. 선택 → 재귀 → 복원. 이 세 단계 중 하나라도 빠지면 다른 분기가 오염된다.이번 포스트에서는 itertools 풀이와 DFS 백트래킹 풀이 두 가지를 시각 자료와 함께 비교한다..

[정글 알고리즘]-[중] 골드바흐의 추측

BEFORE for j in range(2, left): if left % j == 0: 소수 아님... AFTER if prime[left] and prime[right]: → 즉시 확인 크래프톤 정글 / 정글에서 문제풀기[정글 베이직] 골드바흐의 추측백준 9020 · 수학, 소수 · Gold V처음에 소수 판별을 매번 하려고 했다.테스트케이스마다 for j in range(2, left)를 돌리면 되겠다고 생각했다. 논리는 맞는데, 뭔가 너무 많이 도는 것 같았다.그때 에라토스테네스의 체를 처음 제대로 이해했다. 미리 계산해두면 조회가 O(1)이 된다는 것을 여기서 처음 느꼈다.· · ·문제 소개4 이상의 짝수 n을 두 소수의 합으로 나타내되, 두 소수의 차이가 ..

[정글 알고리즘]- [중]- IPV6 (백준 3107번)

BEFORE else: left = []AFTER else: leftlist = [] 처음에 문제를 읽고 멈췄다. IPv6이 뭔지는 알겠는데, 어디까지 생략할 수 있고 어디까지 복원해야 하는지가 직관적으로 와닿지 않았다. ::를 처음 봤을 때 "콜론이 두 개?" 하고 그냥 넘겼다가, 예제 출력을 보고 다시 문제를 정독했다. · · · IPv6 주소 복원::1 → 0000:0000:0000:0000:0000:0000:0000:0001축약된 IPv6 주소를 32자리 16진수 원형으로 복원한다 문제 소개 IPv6 주소는 원래 8개 그룹, 그룹당 16진수 4자리 형태다. 사람이 읽고 쓰기 편하도록 두 가지 규칙으로 줄여쓸 수 있다. 축약된 주소를 입력받아 원래 형태로 복원하는 것이 목표다.항목내용입력올바른 ..

[정글 베이직 10] — 정수론- GCD & LCM

크래프톤 정글 › 베이직 10[정글 베이직 10]정수론 — GCD & LCM유클리드 호제법으로 최대공약수를, GCD로 최소공배수를 O(log n)에 구하기▶ INPUTa = 48b = 18두 양의 정수✓ OUTPUTGCD = 6LCM = 144최대공약수 · 최소공배수01 문제 설명두 양의 정수 a, b가 주어졌을 때, 최대공약수(GCD, Greatest Common Divisor)와 최소공배수(LCM, Least Common Multiple)를 구합니다. 단순 반복으로 구하면 O(min(a, b))이지만, 유클리드 호제법을 사용하면 O(log n)으로 줄어듭니다.📌 핵심 입출력입력: 두 양의 정수 a, b출력: GCD (최대공약수), LCM (최소공배수)예제 1 : a=48, b=18 → GCD=6, ..

[정글 베이직 9]삽입 정렬 (Insertion Sort) 구현

[정글 베이직 9]삽입 정렬 (Insertion Sort) 구현카드 게임처럼 — 손에 든 패를 적절한 위치에 끼워 넣는 정렬 알고리즘▶ BEFORE (입력)12 11 13 5 6 정렬되지 않은 배열✓ AFTER (출력)5 6 11 12 13 오름차순 정렬 완료01 문제 설명삽입 정렬(Insertion Sort)은 배열을 정렬된 부분과 정렬되지 않은 부분으로 나누어, 정렬되지 않은 부분에서 원소를 하나씩 꺼내 정렬된 부분의 적절한 위치에 삽입하는 알고리즘입니다.🃏 비유하자면 카드 게임에서 손에 든 카드를 정렬할 때, 새 카드를 뽑으면 이미 정렬된 카드들 사이에서 알맞은 자리를 찾아 끼워 넣는 방식과 동일합니다.📌 핵심 입출력입력: 정렬되지 않은 정수 배열 arr출력: 오름차순으로 정렬된 배열예제 1: ..

[정글 베이직 7] Big O 복잡도 분석 — 배열에서 중복 원소 찾기

크래프톤 정글 · 베이직 7Big O — 같은 문제,다른 속도BRUTE FORCE O(n²)for i in range(n): for j in range(i+1, n): if nums[i] == nums[j]: ...# 모든 쌍을 비교→HASH SET O(n)for num in nums: if num in seen: duplicates.add(num) else: seen.add(num)# 배열을 한 번만 순회cedis · 2026.3.8이번 주제는 복잡도 분석이다.코드가 동작하는 건 당연한 거고, 이제부터는 "얼마나 빠르게, 얼마나 적은 메모리로" 동작하는지를 따져야 한다.배열에서 중복 원소를 찾는 딱 하나의 문제를 3가지 방법으로 풀면서 시간복잡도와 공간복잡도..

[정글 베이직 8] 버블 정렬

크래프톤 정글 · 베이직 8버블 정렬로정렬 알고리즘을이해한다는 것BEFORE 일반 버블for i in range(n-1): for j in range(n-i-1): if arr[j] > arr[j+1]: swap# 항상 n-1 패스 수행→AFTER 최적화 버블swapped = False ... swapped = Trueif not swapped: break# 이미 정렬됐으면 즉시 종료cedis · 2026.3.8이번 주제는 버블 정렬(Bubble Sort)이다. 정렬 알고리즘 중 가장 직관적인 방식 — 옆에 있는 두 숫자를 비교해서 큰 쪽을 뒤로 보내는 걸 반복하면 어느새 정렬이 완성된다.기본 버전과 조기 종료 최적화 버전, 두 가지를 직접 구현하면서 왜 이 차이가..