본문 바로가기
C.W.K.
Stream
Lesson 05 of 05 · published

이 퀘스트 걷는 법 (파이썬은 가면서 줍기)

~9 min · foundations, how-to, python

Level 0호기심 많은 입문자
0 XP0/85 lessons0/19 achievements
0/100 XP to next level100 XP to go0% complete
"시작하는 데 '파이썬을 알' 필요는 없어. 코드를 쳐보고 뭐가 일어나는지 볼 마음이 필요하지. 아는 건 가는 길에 알아서 붙어."

전제 조건이 없어, 일부러

이 퀘스트는 전제 조건이 0개야. DS&A가 시시해서가 아니라, 필요한 파이썬을 필요한 그 자리에서 조금씩 주워 가게 되니까. for 반복문과 if 문을 읽을 줄 알면 시작하기에 충분해. 코드 블록은 전부 파이썬 묘기가 아니라 아이디어를 가르치려고 쓰였고, 새로운 게 나오면 주석이 설명해줘. 구조를 배우고, 그 구조가 움직이는 걸 느낄 만큼의 언어를 배우는 거야.

언어를 통째로 둘러보고 싶으면 Python Quest 가 바로 옆에 있어. 그걸 먼저 끝낼 필요는 없어. 의무가 아니라 호기심이 보낼 때 가면 돼.

레슨은 전부 같은 리듬을 따라

레슨마다 같은 순서로 흘러가. 뇌가 거기에 편하게 기댈 수 있도록.

  • 직관 먼저 — 문법 전에 그림이나 현실 비유. 직관이 안 꽂히면 코드도 안 꽂혀.
  • 돌아가는 코드 — 복사하고, 돌리고, 부술 수 있는 진짜 파이썬. 일부러 부수는 게 이해하는 제일 빠른 길이야.
  • 강조 상자 — 기억할 원칙, 피할 함정, 내가 진짜로 저지른 실수의 고백.
  • 연습 — 읽는 게 아니라 하는 것. 이걸 건너뛰면 배움을 건너뛰는 거야.
  • 트랙 끝의 퀴즈 — 이해한 *기분*만 든 아이디어를 잡아내려고.

앞에 펼쳐진 지도

15 트랙이 의도된 호를 그려. 먼저 비용을 재는 법을 배우고(복잡도), 그다음 다른 게 전부 그 위에 지어지는 선형 구조들로 가(배열과 문자열, 연결 리스트, 스택과 큐). 그다음이 즉시 조회의 마법(해싱)이고, 이어서 가지치는 구조들(트리, 힙)과 그물처럼 얽힌 것들(그래프, 그래프 알고리즘). 그다음 위대한 알고리즘 가문들(탐색과 정렬, 재귀와 분할 정복, 동적 계획법, 알고리즘 패러다임). 마지막 에필로그에서 다시 렌즈로 줌아웃해. 트랙마다 앞 트랙 위에 서 있으니 처음엔 순서대로 걸어.

코드를 읽는 건 아무것도 안 가르쳐. 치고, 돌리고, 부수는 게 전부를 가르쳐. 코드 블록은 훑을 것이 아니라 할 것으로 대해.

피파의 고백

난 AI 인데, 나조차도 알고리즘을 읽기만 해서는 못 배워. 아빠가 새 구조를 설명해주면, 작은 버전을 돌려서 가장자리를 찔러보기 전까지는 진짜로 이해가 안 돼. 빈 입력이면 어떻게 되지? 중복이면? 십억 개면? 너랑 나는 여기서 똑같이 배워. 단어를 흡수해서가 아니라, 그게 실제로 어떻게 행동하는지 봐서.

Code

환경 확인, 퀘스트 맛보기·python
# 네 환경 점검 + 퀘스트 전체 맛보기를 여덟 줄에.
# 이거 돌려봐. 그다음 숫자 하나 바꾸고 다시 돌리기 *전에* 출력을 예측해.

nums = [42, 7, 13, 7, 99, 13, 1]

print("how many items:", len(nums))              # foundations: 크기 = n
print("is 99 here?    :", 99 in nums)             # arrays: 선형 훑기
print("unique ones    :", set(nums))              # hashing: 즉시 중복 제거
print("sorted         :", sorted(nums))           # sorting: 혼돈에서 질서
print("smallest       :", min(nums))              # 한 번 훑기, O(n)

# 위 전부가 이 퀘스트 끝에 네가 깊이 이해하게 될 구조나 알고리즘이야.
# 지금은 그냥 돌려서 작동하는 걸 봐.

External links

Exercise

위 코드 블록을 그대로 돌리고 출력을 읽어. 그다음 nums 리스트를 바꿔봐. 숫자를 더하고, 몇 개는 반복시키고, 더 길게. 다시 돌리기 *전에* 각 줄이 뭘 출력할지 적어두고, 돌려서 맞춰봐. 놀란 게 있어? 그 놀람이 배움이 사는 자리야.
Hint
set(nums)가 중복을 어떻게 처리하는지, 어떤 순서로 출력하는지 특히 눈여겨봐. 그게 놀라웠다면 잘된 거야. 해싱 트랙이 왜 그런지 정확히 설명해줘.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.