개발 · 프로그래밍

/

알고리즘 · 자료구조

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

문과 출신의 현업 개발자가 취업하기 위해 공부한 방식 그대로 설명하는 기초 DFS 강의입니다 :) 지루한 이론 강의는 최소한으로 줄이고, 직접 문제를 풀어보며 배우는 강의를 준비했습니다! 이 강의를 들으시면 백준 기준으로 실버 등급의 DFS 문제들을 혼자 풀 수 있게 될 겁니다.

(5.0) 수강평 10개

수강생 115명

Thumbnail

초급자를 위해 준비한
[알고리즘 · 자료구조, 프로그래밍 언어] 강의입니다.

이런 걸
배워요!

  • 지루한 이론 수업은 그만! 문제 풀이를 통해 배우는 DFS 전략!

  • 가장 많이 출제된 유형들만 선별하여 선택과 집중!

  • DFS 문제를 혼자서도 풀 수 있는 능력

 생각보다 어려운 DFS 알고리즘? 
빈출 문제 유형으로 빠르게 학습하세요! 

혹시 이런 고민 해보셨나요?

🤔

이 문제를 DFS로 풀어야 한다는 건 어떻게 알 수 있나요?

🥲

DFS라는 걸 알아도 매번 막막해요. 공통된 풀이가 없을까요?

😥

재귀함수가 머릿속에 그려지지 않아요. 어떻게 정리해야 이해할 수 있을까요?

비전공자를 위한, 8년차 개발자의 
DFS 알고리즘 강의 🪢

DFS(Depth First Search)

그래프 전체를 탐색하는 방법 중 하나로, ‘깊이’를 우선으로 탐색하는 알고리즘입니다.

본 강의는 DFS 알고리즘 입문 강의로, 가장 많이 출제되는 문제를 풀어보며 DFS 문제를 직접 경험하는 것을 목표로 합니다. 핵심 개념을 아주 짧게 정리한 뒤 각 유형에 해당하는 문제를 풀어보며 "이 문제는 DFS 문제이구나"라고 알아차릴 수 있는 시야를 기르고, 모든 문제를 관통하는 핵심을 다루어 DFS를 정복하고자 만든 강의입니다 :D

제가 운영하는 유튜브 채널에 달린 댓글들입니다.

DFS 알고리즘을 공부했지만 잘 이해가 안 되거나, 스스로 풀이를 떠올리기가 어려운 분들께 이 강의가 큰 도움이 될 것입니다. 문과생 출신의 8년 차 현업 개발자가 비전공자들을 위해 제작한 강의인 만큼, 그 어떤 강의보다 쉽게 이해될 것이라고 약속드립니다.

이런 분들께 추천해요 🙋

파이썬 기본 문법은 알지만 코딩테스트를 처음 준비하는 분들

DFS 문제를 혼자 풀어봤지만 감이 잘 안 잡히는 분들

이론 강의를 들어도 정작 문제를 보면 막막한 분들


강의 특징 ✨

1. DFS 문제라는 힌트를 정리해요.

그동안 강의를 하면서 수강생 분들이 특히 많이 하시던 이야기는 "DFS로 풀어야 하는 줄 몰랐어요" 였습니다.

때문에 강의에서는 제시된 문제부터 같이 읽어보며 "이 문제는 어떤 키워드를 보고 DFS를 떠올렸어야 할까?" 하는 질문에 답을 찾습니다.

2. 프로그램 진행에 따라 변하는 자료구조를 보여드려요.

이 강의는 간단한 그림으로 설명을 대체하거나 코드를 치면서 말로만 설명하는 강의가 아닙니다! 자료구조를 어떤 크기로 정의하고 어떻게 초기화해야 하는지부터, 단계별로 값이 어떻게 변화되어 정답을 구할 수 있는지까지 애니메이션을 활용하여 이해하기 쉽게 보여드립니다.

3. 문제를 관통하는 핵심을 정리해요

문제마다 구현의 차이는 있지만, DFS 알고리즘을 요구하는 문제들의 공통점은 변하지 않습니다. 강의를 통해 DFS 문제를 잘 풀기 위한 핵심이 뭔지 유형별로 정리하고, 모든 문제마다 핵심을 다지며 정리하는 시간을 갖습니다.

이 과정을 거치고 나면 새로운 DFS 문제를 봐도 어떤 부분이 공통적인 부분이고 어디가 달라졌는지 빠르게 판단하여 DFS 문제를 스스로 풀 수 있게 됩니다!

📚 엄선된 12개 문제 유형을 선별하고 정리합니다.

강의에서는 백준에 등록된 DFS 입문용 문제(실버 4~2등급) 중 가장 많은 사람이 풀고 어려워했던 문제 12개를 선별했습니다. 그리고 이를 2가지 세부 유형으로 구분하고 각 유형에 필요한 핵심 개념을 정리합니다. 자세한 유형과 문제는 다음과 같습니다.

유형 1. 연결된 요소 찾기 유형

  • 바이러스(2606) (무료 공개)
  • 연결 요소의 개수(11724)
  • 알고리즘 수업 - 깊이 우선 탐색 1(24479)
  • 알고리즘 수업 - 깊이 우선 탐색 2(24480)
  • DFS와 BFS(1260)
  • 촌수계산(2644)
  • 트리의 부모 찾기(11725)

유형 2. 같은 부류 찾기

  • 유기농 배추(1012) (무료 공개)
  • 침투(13565)
  • 섬의 개수(4963)
  • 바닥 장식(1388)
  • 점프왕 쩰리(Small) (16173)

막막한 마음을 아는 만큼 
더 쉬운 길을 짚어드릴게요 🚩

안녕하세요 :) 저는 경영/경제를 전공한 문과생으로 시작해, 현재는 8년 차 대기업 개발자로 근무 중인 개발자로 취직하기입니다.

  • 8년 차 대기업 개발자
  • 개발자 취업 관련 콘텐츠를 다루는 유튜브 크리에이터 ( https://www.youtube.com/@gaebal )
  • 프로그래머스 플랫폼 C++ 입문 강의 강사
  • 엘리스 플랫폼 알고리즘 퀴즈칩 라이브 세션 및 해설집 제작 담당자 (Python/Java/C++)

8년 전에 처음 개발을 배웠던 것을 생각하면 참 막막하고 힘들었던 것 같은데, 나름의 전략과 방식으로 정리하고 문제를 풀다 보니 조금 더 빠르게/잘 취업할 수 있었던 것 같습니다.

특히 코딩 테스트를 많이 어려워하는 비전공자라면, 비전공자가 가르치는 이 강의를 한번 들어보시면 쉽게 이해할 수 있을 것입니다. 잘 부탁드립니다! :)

함께 보면 좋은 강의 📺


Q&A 💬

Q. 강의가 왜 이렇게 짧은가요?

문제를 많이 추가해서 하나의 큰 강의를 만들고 그만큼 가격을 높이는 게 강사인 제 입장에서 가장 유리합니다. 하지만 단계별로 필요한 설명/내용이 다르고, 무엇보다 제 구독자/수강생분들은 대부분 수입이 없는 취준생분들임을 고려하여 최대한 작은 단위로 나누고 가격을 낮추는 게 더 좋을 것이라고 생각해서 타 강의들에 비해 짧고 작게 구성하게 되었습니다.

Q. 문제가 많지 않은데 DFS를 이해할 수 있을까요?

위의 이유로 강의를 작게 나눴고, 그래서 입문 강의에 이어 골드 등급, 플래티넘 등급을 다루는 응용 강의와 고급 강의도 준비하고 있습니다. 그렇기 때문에 "이 강의만 들으면 모든 DFS 문제를 풀 수 있다!"라고 말하면 수강생들을 기만하는 행위라고 생각합니다. (결국 공부는 스스로 고민하는 시간이 필수이니깐요). 다만, 제가 약속드릴 수 있는 건 이 강의만큼 쉽게 DFS에 입문할 강의는 없다는 점과, 이 강의를 마치고 나면 DFS를 혼자서도 공부하고 이해할 수 있을 것이라는 점입니다. 그래서 단순 풀이 영상들은 필요 없고 물고기 잡는 법을 배우고 싶은 분들에게 자신 있게 추천해 드릴 수 있습니다.

Q. 유튜브에도 풀이가 있던데 똑같지 않나요?

큰 흐름은 동일하지만, 유튜브의 특성상 영상이 길어지면 안 되기 때문에 대부분의 부연 설명을 생략했습니다. 그래서 많은 구독자 분들도 댓글로 질문을 주시기도 하고 아쉬움을 표현하기도 했는데, 이러한 아쉬움을 씻어내기 위해 온라인 강의를 제작하게 됐습니다.

제가 아는 모든 것을 가장 쉽고 간결하게 이해할 수 있도록 내용을 담았고, 실제로 바이러스와 유기농 배추 문제는 해당 강의에 무료로 제공되기도 하고 유튜브에도 올라가 있습니다. 유튜브에서 간략하게 정리한 것이 이 강의에서 어떻게 더 자세하게 설명되는지 직접 보시면 판단하기 쉬울 것 같으니 참고 부탁드립니다!

Q. 질문을 하면 응답까지 얼마나 걸리나요?

특별한 일이 없으면 근무 시간 기준 24시간 이내에 답변을 드리고, 아무리 늦어도 72시간 내로는 답변을 드립니다. 저도 온라인 강의를 많이 수강해 보면서 느꼈지만, 강사가 빠르게 답해주는 만큼 공부하는 페이스도 올라가서 오프라인 강의보다 효과적일 수 있다고 생각하는 편입니다. 하지만 강사의 답변 속도가 느려지면 그만큼 공부에 대한 동기부여도 떨어진다는 것도 잘 알기 때문에 매일 댓글을 확인하며 질문들에 답변드리고 있습니다!

Q. 하면 안 되는 질문도 있나요?

제가 영상마다 말씀드리지만, 모든 질문은 언제나 환영입니다. 대부분 내가 궁금했던 부분을 다른 수강생들도 궁금했을 것이기 때문입니다. 다만, 몇 가지 규칙을 정하면 모두에게 유익한 질문이 될 것 같습니다.

1. 질문과 관련된 영상에 질문을 남겨주세요!

  • 영상마다 다루는 내용이 있기 때문에 서로 도움이 될 수 있도록 해당 영상에 질문을 올려주시면 모두에게 유익한 질문이 될 것 같습니다.

2. 인생 상담/취업 관련 질문 등은 멘토링 섹션을 통해 문의해 주세요.

  • 이런 질문들은 각자 처한 상황마다 답변이 달라질 수 있기 때문에 보다 개인적으로 질문해 주시면 저도 정확한 가이드를 드릴 수 있습니다. 공개 질문으로 답변드리려면 모호한 답만 나오기 때문에 이런 내용은 멘토링 섹션에 남겨주시면 성심성의껏 답변드리겠습니다.
  • 멘토링 링크 : https://inf.run/kCsp

3. "왜안돼?"식의 질문도 멘토링 섹션을 통해 문의해 주세요.

  • 너무 답답한 마음에 코드 전문을 복사+붙여넣기 하고 봐달라고 요청하시는 경우가 있습니다. 이런 질문은 다른 분들께 도움이 되기는 어렵고, 질문해 주신 분마다 걸려있는 상황이 다르므로 멘토링 섹션을 통해 개별적으로 문의하시면 어디가 틀렸고 왜 틀렸는지, 어떻게 수정해야 할지까지 설명해 드리고 있습니다!
  • 멘토링 링크 : https://inf.run/kCsp

💾 수강 전 확인해주세요

  • 실습 환경으로는 어떤 OS/IDE를 사용하셔도 상관 없습니다. 저는 Windows 11에서 VS Code를 사용해 코드를 작성하고 있습니다.
  • 다만, 직접 코드를 작성하고 Build/Debug 할 수 있는 환경을 미리 갖춰두시고 들어오면 수월하게 강의를 들을 수 있습니다.
  • 강의에서 사용되는 PPT를 PDF 형태로 제공해 드립니다.
  • 파이썬의 기본 문법은 이해하셨다고 가정하고 강의를 진행합니다. DFS를 한 번이라도 경험하신 분들이라면 더 수월하겠지만, DFS를 모르는 분들을 위한 기본 설명도 간략하게 있으니 걱정하지 않으셔도 됩니다!

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 코딩테스트/DFS 알고리즘을 처음 접하시는 분

  • 재귀 함수를 이해하려다 머리가 터진 경험이 있는 분

  • 문법은 알지만 문제 앞에서 한 없이 작아지는 코딩테스트 입문자

  • DFS 개념은 알겠는데 문제를 보면 풀이가 떠오르지 않아 막막한 분

  • 이론에 질려서 같이 문제를 풀었으면 하는 분

  • 파이썬으로 코딩테스트를 준비 중이신 분

선수 지식,
필요할까요?

  • 파이썬 기본 문법 (조건문, 반복문, 입/출력문 등)

문과생도 이해하는 알고리즘 강의를 가르치는 강사 개발자로 취직하기입니다 :)
저는 문과생 출신으로 현재는 8년차 대기업 개발자입니다. 처음 코딩을 접하고 코딩 테스트 준비를 하던 막막한 시절을 떠올리며, 어떻게 하면 조금 더 쉽게 설명할 수 있을지, 저 같은 비전공자 문과생도 이해하고 새로운 기술을 습득할 수 있을지 고민하며 강의를 제작하고 있습니다.
유튜브 통해서도 무료 강의 진행하고 있으니 많은 관심 부탁 드립니다!
https://www.youtube.com/@gaebal

커리큘럼

전체

19개 ∙ (3시간 59분)

수업 자료

가 제공되는 강의입니다.

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!