전체 글 251

[정글 베이직 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개를 골라 만들 수 있는..

[정글 베이직 5] 재귀 함수 완성

코드는 바로 맞았다.힌트에 구조가 다 나와 있었고, 채워 넣었더니 테스트가 통과됐다.근데 뭔가 찜찜했다. 내가 이해하고 쓴 건지, 그냥 베껴 쓴 건지.그래서 코드를 닫고 factorial(5)를 손으로 직접 따라가봤다.함수가 몇 번 불리는지, 어느 시점에 값이 돌아오는지.그때서야 재귀가 뭔지 실제로 납득됐다.문제 소개재귀 함수로 팩토리얼과 피보나치 수를 계산한다.핵심은 코드를 짜는 것보다 재귀의 두 구성요소를 이해하는 것이다.항목내용입력n: 양의 정수팩토리얼 출력n! → factorial(5) = 120피보나치 출력n번째 피보나치 수 → fibonacci(5) = 5핵심 개념base case, recursive case, 호출 스택# 팩토리얼factorial(5) → 120 # 5×4×3×..

[정글 베이직 4] 두 수의 합 완성

이중 반복문이면 된다고 생각했다.배열에서 두 수를 골라서 합이 target이 되면 저장하면 되잖아.근데 실행해봤더니 결과에 (0, 1)도 있고 (1, 0)도 있었다.같은 쌍이 두 번 들어간 거다.심지어 (0, 0)도 들어갔다. 자기 자신과의 합.조건을 하나 빠뜨렸을 뿐인데 결과가 완전히 달라졌다.문제 소개정수 배열과 목표 값이 주어진다.두 수를 골랐을 때 합이 target이 되는 모든 인덱스 쌍 (i, j)를 찾는 것.단, i 조건을 지켜야 한다.항목내용입력nums: 정수 배열, target: 목표 합출력(i, j) 인덱스 쌍의 리스트 — i 핵심 도구이중 반복문, range(i+1, n), 완전 탐색(Brute Force)예제 입출력은 이렇다.# 입력nums = [2, 7, 11, 15]targe..

[정글 베이직 3] 회문 판별

처음에 코드를 쓰다가 멈췄다.논리는 맞는 것 같은데, 실행하면 이상한 결과가 나왔다."A man, a plan, a canal: Panama"를 넣었더니 False가 나왔다.회문이 맞는데 왜 False가 나오지?원인을 찾는 데 생각보다 시간이 걸렸다. 딱 한 글자 차이였다.문제 소개문자열이 주어진다. 이 문자열이 회문인지 판별하는 함수를 작성하는 것.단, 대소문자는 구분하지 않고, 알파벳과 숫자가 아닌 문자는 무시한다.항목내용입력임의의 문자열 s출력True 또는 False핵심 도구isalnum(), lower(), 리스트 컴프리헨션, [::-1]예제 입출력은 이렇다.# 입력 / 출력"A man, a plan, a canal: Panama" → True"race a car" ..

[파이썬 기초 문법 총정리 #4] 실전 도구 완전 정복 — Arrays, Iterators, Modules, Dates, Math (Ch.21~25)

[정글 파이썬 #4] 실전 도구 완전 정복 — Arrays, Iterators, Modules, Dates, Math (Ch.21~25)들어가며시리즈 1~3을 거치며 파이썬 문법의 뼈대는 완성됐다. 이제부터는 "실전에서 정말 쓰는 것들"이다. Ch.21~25는 특별한 이름이 없어 보이지만, 뜯어보면 알짜배기만 모여있다.Ch.21 Arrays — 파이썬에서 배열이란? (List와 뭐가 다른가)Ch.22 Iterators — for문이 내부에서 어떻게 돌아가는지Ch.23 Modules — 코드를 파일로 쪼개는 방법Ch.24 Dates — 날짜·시간 다루기 (datetime)Ch.25 Math — 수학 함수 총정리C로 따지면 #include로 가져오는 헤더파일 개념, 표준 라이브러리 함수들에 해당한다. 파이썬..

[파이썬 기초 문법 총정리 #3] 제어문과 함수 완전 정복 — if, while, for, def, lambda (Ch.16~20)

들어가며제어문만큼은 C랑 비슷하겠지 — 라고 생각했는데 아니었다.for (int i=0; i 같은 게 파이썬에는 없다. 루프가 아예 다른 개념으로 동작한다.함수도 마찬가지다. *args니 **kwargs니 하는 게 처음엔 뭔지도 몰랐다.W3Schools 16~20챕터를 직접 쳐보면서 하나씩 정리했다. 이번 글은 그 기록이다.시리즈 개요: W3Schools 파이썬 튜토리얼 1~25챕터를 공부한 내용을 묶어 정리합니다.이번 편은 챕터 16~20: 제어문·함수 전반 — if/elif/else, while, for, def, lambda1. if / elif / else — 조건문 (Ch.16)기본 구조는 C랑 거의 같다. 다른 점은 괄호 없이 조건을 쓰고, 블록은 콜론 + 들여쓰기로 구분한다는 것.else i..

[파이썬 기초 문법 총정리 #2] 자료구조 4총사 완전 정복 — List, Tuple, Set, Dict (Ch.12~15)

들어가며C에서 배열을 쓸 때는 크기를 미리 정해야 했다. int arr[100]; 같은 식으로.파이썬을 처음 보면 리스트, 튜플, 셋, 딕셔너리가 전부 비슷하게 생겨 보여서 "뭘 언제 써야 하지?" 라는 생각이 든다.크래프톤 정글 2주차 W3Schools 12~15챕터를 직접 쳐보면서 각각 언제 쓰는 건지 감이 잡혔다.이번 글은 그 4가지 자료구조를 C 출신 시선으로 비교 정리한 것이다.시리즈 개요: W3Schools 파이썬 튜토리얼 1~25챕터를 공부한 내용을 묶어 정리합니다.이번 편은 챕터 12~15: 자료구조 4총사 — List, Tuple, Set, Dictionary한눈에 보는 4총사 비교자료구조기호순서변경 가능중복 허용주 용도List[ ]OOO일반 배열 대체, 순서 있는 컬렉션Tuple( )O..

[파이썬 기초 문법 총정리#1] — C 출신이 처음 파이썬 보면 낯선 것들 (W3Schools Ch.01~11)

들어가며C만 써오다가 파이썬을 처음 봤을 때 솔직히 좀 당황했다.{}는 어디 갔지? 세미콜론은? int x = 5;는 왜 그냥 x = 5야?크래프톤 정글 2주차, W3Schools 01~11챕터를 직접 코딩하면서 이 물음표들이 하나씩 해소됐다.이 글은 그 과정을 정리한 것이다. C 출신이 파이썬에서 낯설었던 것들 위주로.시리즈 개요: W3Schools 파이썬 튜토리얼 1~25챕터를 공부한 내용을 묶어 정리합니다.이번 편은 챕터 01~11: 기초 문법 전반 — 들여쓰기, 변수, 타입, 문자열, Boolean, 연산자1. 들여쓰기가 문법이다 (Ch.03)파이썬에서 가장 먼저, 그리고 가장 크게 낯선 것: 중괄호가 없다.C에서 if 블록을 {}로 감쌌다면, 파이썬은 들여쓰기 자체가 그 역할을 한다.스타일 취향..

[정글 베이직 1] 리스트 컴프리헨션 — 파이썬답게 쓴다는 것

이 문제 처음 봤을 때 솔직히 쉽다고 생각했다.리스트, 딕셔너리. 기초잖아. 평균 구하고 필터링하면 되는 거잖아.근데 내가 쓴 첫 코드를 보고 나서 — 이게 파이썬 맞나 싶었다.문제 소개학생들의 이름과 점수가 딕셔너리 리스트로 주어진다.평균 점수를 구하고, 평균 이상인 학생들의 이름을 뽑아내는 것.항목내용입력[{"name": "Alice", "score": 85}, ...] 형태의 딕셔너리 리스트출력평균 점수 / 평균 이상 학생 이름 리스트핵심 도구sum(), len(), 리스트 컴프리헨션예제 입출력은 이렇다.# 입력[ {"name": "Alice", "score": 85}, {"name": "Bob", "score": 92}, {"name": "Charlie", "score"..

[정글 베이직 2] 배열을 돌린다는 것 — (i, j) → (j, n-1-i)

태그 없음 --> 솔직히 말하면, 이 문제 처음 봤을 때 별거 아니겠다 싶었다.배열이잖아. 인덱스 접근이 뭔지 모르는 것도 아니고.근데 막상 코드 창 열고 앉으니까 — 손이 안 움직였다.문제 소개N x N 크기의 2차원 배열을 시계방향으로 90도 회전시키는 문제다.핵심은 배열의 각 요소가 회전 후 어떤 위치로 이동하는지, 그 인덱스 변환 규칙을 이해하는 것.항목내용입력N x N 크기의 2차원 리스트 matrix출력시계방향 90도 회전된 2차원 리스트핵심 규칙(i, j) → (j, n-1-i)예제 입출력은 이렇다.# 입력[ [1, 2, 3], [4, 5, 6], [7, 8, 9]]# 출력[ [7, 4, 1], [8, 5, 2], [9, 6, 3]]3x3뿐 아니라 4x4 테스..