2026/03/09 6

[정글 알고리즘]- [중]- 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)이다. 정렬 알고리즘 중 가장 직관적인 방식 — 옆에 있는 두 숫자를 비교해서 큰 쪽을 뒤로 보내는 걸 반복하면 어느새 정렬이 완성된다.기본 버전과 조기 종료 최적화 버전, 두 가지를 직접 구현하면서 왜 이 차이가..

[정글 베이직 6] 백 트래킹

크래프톤 정글 · 베이직 6 백트래킹으로 조합을 구현한다는 것BEFOREfor i in range(1, n+1): for j in range(i+1, n+1): result.append([i, j])→AFTERcurrent.append(num) # Choosebacktrack(num+1) # Explorecurrent.pop() # Unchoosecedis · 2026.3.8이 문제 처음 봤을 때 그냥 for문 두 번 쓰면 되는 거 아닌가 생각했다.근데 k가 3이면? 4이면? for문을 k개 중첩해야 한다는 걸 깨닫는 순간 — 이건 코드가 아니라 복사 붙여넣기다 싶었다.그래서 백트래킹을 배웠다.· · ·문제 소개1부터 n까지의 숫자 중에서 k개를 골라 만들 수 있는..