inflearn logo

[Java] A DFS Algorithm Even Liberal Arts Students Can Understand! – Beginner’s Guide

This is a beginner-level DFS course that explains exactly how a working developer with a liberal arts background studied to land a job :) I’ve kept the boring theory to a minimum and prepared a course where you learn by solving problems yourself! After taking this course, you’ll be able to solve Silver-level DFS problems on Baekjoon on your own.

(5.0) 50 reviews

483 learners

Level Basic

Course period 12 months

dfs
dfs
Algorithm
Algorithm
Coding Test
Coding Test
Java
Java
dfs
dfs
Algorithm
Algorithm
Coding Test
Coding Test
Java
Java
Thumbnail

Reviews from Early Learners

5.0

5.0

kwsic

53% enrolled

I bought it because I was planning to prepare for the coding test starting in September for a job change. I listened to two lectures on my way home from work to get a taste, but my head was really spinning... Please hurry up and give me the other one... You know that lectures come before health, right??

5.0

슬램덩ㅋ

95% enrolled

I came here after watching YouTube and it explained only the key elements in detail. It was a great help in preparing for the coding test!!

5.0

빵쫀

100% enrolled

Prayer Meta job seekers who just hope that graph search problems won't appear on the coding test, please listen!!!! I've heard the names BFS/DFS a lot, but when asked to say what they are, I was so stupid that I couldn't say anything. But after listening to two or three lectures, my eyes opened right away, and after listening to the end of Section 1, I can't help but laugh when I come across a DFS problem. The teaching ability is really... wow... I have no doubt that you are the number one teacher in the algorithm world. The reason I'm leaving such a long review is one thing... Teacher, this is just a student's review, but please cheer up a little and make lectures for other types... please...

What you will gain after the course

  • Enough with boring theory classes! Learn DFS strategies through problem-solving!

  • Select and focus only on the types that have appeared most frequently on exams!

  • The ability to solve DFS problems on your own

DFS algorithms are harder than you might think,
so learn them through frequently encountered problems 💡

Have you ever had thoughts like these?

🤔 How can you tell that this problem should be solved using DFS?

🥲 Even when I know it’s DFS, I still feel stuck every time. Is there a common approach to solving these problems? 

🫠 I can’t visualize recursive functions in my head. How should I organize them to understand them?

An 8-year developer’s course on
DFS algorithms for non-majors 🪢

DFS (Depth First Search) is one of the methods for traversing an entire graph, and is an algorithm that prioritizes exploring by “depth.”

This course is an introduction to the DFS algorithm, with the goal of directly experiencing DFS problems by solving the most frequently asked ones. After briefly reviewing the core concepts, you will solve problems from each category to develop the perspective needed to recognize, “This is a DFS problem,” and by covering the key principles common to all problems, this course was created to help you master DFS :D

This course will be a great help to those who have studied the DFS algorithm but still do not understand it well or find it difficult to come up with solutions on their own. As an eight-year industry developer with a liberal arts background, I created this course for people without a computer science background, so I promise it will be easier to understand than any other course. Below are comments posted on the YouTube channel I run.


I recommend this course to people like these 🙋

Those who know basic Java syntax but are preparing for coding tests for the first time

Those who have tried solving DFS problems on their own but still aren't quite sure how to approach them

Those who feel overwhelmed when they see a problem, even after taking a theory lecture


Course Features ✨

#1.
Let's organize the
hints that indicate a problem is a DFS problem.

 

What students often said during the course was, "I didn't know I was supposed to solve it with DFS." So, we read the problem together first and answer the question, "What keyword in this problem should have reminded us of DFS?"

#2.
We show you the data structures
that change as the program progresses
.

 

This course does not replace explanations with simple illustrations or explain things only verbally while typing code!

We use animations to show everything from what size to define the data structures and how to initialize them to how their values change at each step to arrive at the answer.

#3.
Let's organize the
key concepts that run through the problems.

 

Although implementations differ from problem to problem, the commonality among problems that require the DFS algorithm does not change. Through the lecture, we organize by type what the key is to solving DFS problems well, and take time to reinforce and review the core of every problem.

After completing this process, you will be able to quickly determine which parts are common and which parts are different when you encounter a new DFS problem, enabling you to solve DFS problems on your own!


What You’ll Learn 📚

In this course, we selected 12 DFS introductory problems from Baekjoon that the most people solved and found difficult (Silver 4 to Silver 2). We then divide them into two subtypes and summarize the key concepts needed for each type. The types and problems are as follows.

Type 1. Finding Connected Components

  • Virus (2606) (Free)
  • Number of Connected Components (11724)
  • Algorithm Class - Depth-First Search 1 (24479)
  • Algorithm Class - Depth-First Search 2 (24480)
  • DFS and BFS (1260)
  • Kinship Calculation (2644)
  • Finding the Parent of a Tree (11725)

Type 2. Finding the Same Group

  • Organic Cabbage (1012) (Free to watch)
  • Infiltration (13565)
  • Number of Islands (4963)
  • Floor Decoration (1388)
  • Jelly the Jumper (Small) (16173)




Anticipated Questions Q&A 💬

Q. Why is the course so short?

As an instructor, it would be most advantageous for me to add many problems, create one large course, and raise the price accordingly. However, since the explanations and content needed differ at each level, and above all, considering that most of my subscribers and students are job seekers with no income, I thought it would be better to divide the course into the smallest possible units and keep the price low. That is why it is structured to be shorter and smaller than other courses.

Q. Can I understand DFS even though there aren’t many problems?

For the reasons mentioned above, I divided the course into smaller sections, which is why I am also preparing an intermediate course and an advanced course covering Gold- and Platinum-level problems following this introductory course. Therefore, I believe it would be misleading to tell students, “You’ll be able to solve every DFS problem just by taking this course!” (After all, spending time thinking things through on your own is an essential part of studying.) However, what I can promise is that there is no course that will introduce you to DFS as easily as this one, and that after completing it, you will be able to study and understand DFS on your own. That’s why I can confidently recommend it to those who don’t need simple solution videos but want to learn how to fish.

Q. There are solution videos on YouTube too. Aren’t they the same?

The overall flow is the same, but because of YouTube’s nature, videos cannot be too long, so most of the additional explanations have been omitted. As a result, many subscribers have asked questions in the comments and expressed their disappointment, and I ended up creating an online course to address these shortcomings.

I’ve organized everything I know in a way that makes it as easy and concise as possible to understand. In fact, the content on viruses and organic cabbage is provided for free in the course and is also available on YouTube. I think it would be helpful to take a look and judge for yourself how the brief summary on YouTube is explained in greater detail in this course!

Q. How long does it take to receive a response after asking a question?

Unless something special comes up, I’ll respond within 24 hours during working hours, and I’ll answer within 72 hours at the latest. I’ve taken many online courses myself, and I feel that when an instructor responds quickly, it helps maintain your study pace and can be more effective than in-person classes. However, I also understand that when an instructor’s response time slows down, motivation to study drops accordingly, which is why I check the comments every day and respond to questions!

Q. Are there any questions I shouldn’t ask?

As I mention in every video, all questions are always welcome. Most likely, other students were curious about the same things you were. However, establishing a few rules will help ensure that questions are beneficial to everyone.

1. Please leave questions on the video related to your question!

    • Since each video covers specific content, posting your question on the relevant video will make it beneficial for everyone by allowing you to help one another.

2. For life advice, employment-related questions, and similar inquiries, please contact us through the mentoring section.

    • Since the answers to these questions may vary depending on each person's situation, please ask more specific, personalized questions so that I can provide accurate guidance. If I answer through a public question, I can only give a vague response, so please leave these types of questions in the mentoring section, and I will respond to them as sincerely and thoroughly as possible.
    • Mentoring link: https://inf.run/kCsp

3. Please also submit questions like "Why doesn't it work?" through the mentoring section.

    • Sometimes, out of frustration, people copy and paste their entire code and ask me to take a look. These questions are unlikely to help others, and since each person asking has a different situation, please contact me individually through the mentoring section. I will explain what is wrong, why it is wrong, and how to fix it!
    • Mentoring link: https://inf.run/kCsp

Important notes before taking the course 📢

Practice environment

  • I am writing code using VS Code on Windows 11.
  • Students may use any OS/IDE they prefer.
  • However, it will be easier to follow the lecture if you set up an environment beforehand where you can write, build, and debug code yourself.
  • If detailed configuration feels cumbersome or difficult, we recommend using Eclipse. (https://www.eclipse.org/downloads/)

Learning Materials

  • The PPT used in the course is provided in PDF format.

Prerequisites and Notes

  • The course proceeds on the assumption that you understand the basic syntax of Java.
  • Those who have used DFS before may find it easier, but don’t worry—there is also a brief basic explanation for those who are unfamiliar with DFS!

About the Knowledge Sharer ✒️

Hello :) I started out as a liberal arts student majoring in Business Administration and Economics, and I am now a developer with eight years of experience working at a major corporation. Looking back on when I first learned to code eight years ago, I remember feeling quite overwhelmed and struggling, but by organizing my thoughts and solving problems using my own strategies and methods, I was able to find a job a little faster and more successfully. In particular, if you are a non-major who finds coding tests especially difficult, you should be able to understand them easily by taking this course taught by someone who also came from a non-computer-science background. I look forward to working with you! :)

Career History/Portfolio/Personal Videos

  • Developer at a major corporation with 8 years of experience
  • YouTube creator covering content related to developer employment ( https://www.youtube.com/@gaebal )
  • Instructor for the C++ beginner course on the Programmers platform
  • Person in charge of producing live sessions and solution guides for the Elice platform’s Algorithm Quiz Chip

Recommended for
these people

Who is this course right for?

  • Those who are new to coding tests and DFS algorithms

  • Anyone who has ever felt like their head was about to explode trying to understand recursive functions

  • A coding test beginner who knows the syntax but feels utterly intimidated when faced with a problem

  • Those who understand the concept of DFS but feel at a loss because they can’t come up with a solution when they see a problem

  • Those who are tired of theory and would like to solve problems together.

  • Those preparing for coding tests in Java

Need to know before starting?

  • Basic Java syntax (conditional statements, loops, input/output statements, etc.)

Hello
This is gaebaljob

672

Learners

70

Reviews

76

Answers

5.0

Rating

2

Courses

I am "Getting a Job as a Developer," an instructor who teaches algorithm classes that even humanities majors can understand :)
I come from a humanities background and am currently an 8th-year developer at a major corporation. Recalling the days when I first encountered coding and felt overwhelmed while preparing for coding tests, I am creating these lectures while contemplating how to explain things more easily so that non-majors and humanities students like myself can understand and acquire new skills.
I also provide free lectures on YouTube, so I would appreciate your interest!
https://www.youtube.com/@gaebal

More

Reviews

All

50 reviews

5.0

50 reviews

  • maestrois님의 프로필 이미지
    maestrois

    Reviews 25

    ∙

    Average Rating 5.0

    5

    63% enrolled

    It's a really good lecture!!

    • gaebaljob
      Instructor

      Thank you for your best review, LuckyStrike! :)

  • alsgh1552님의 프로필 이미지
    alsgh1552

    Reviews 4

    ∙

    Average Rating 5.0

    5

    100% enrolled

    When I was solving the first problem, I wondered if I could solve the next one without looking at the solution, but after completely understanding the first problem, I got a sense of how to solve the next problem and the one after that. It was a time when I was able to completely grasp the feeling of the DFS type. I hope other algorithm lectures will come out too! I'll be waiting.

    • gaebaljob
      Instructor

      I'm so glad you've perfectly got the hang of it. Thank you!! Good luck with your studies! :)

  • kwsic6676님의 프로필 이미지
    kwsic6676

    Reviews 1

    ∙

    Average Rating 5.0

    5

    53% enrolled

    I bought it because I was planning to prepare for the coding test starting in September for a job change. I listened to two lectures on my way home from work to get a taste, but my head was really spinning... Please hurry up and give me the other one... You know that lectures come before health, right??

    • gaebaljob
      Instructor

      Thank you, kwsic, for your honest and fun course review!! :) The lecture is more important than your health, but I forgot haha I'll come back for the next lecture soon! The goal is by August, but I'll try to bring it up a bit!

  • tgtgtg88928740님의 프로필 이미지
    tgtgtg88928740

    Reviews 1

    ∙

    Average Rating 5.0

    5

    63% enrolled

    It's so easy to understand!

    • gaebaljob
      Instructor

      Thank you for the great review, Minkim :) Good luck with your studies!

  • eovnfjfpa4963님의 프로필 이미지
    eovnfjfpa4963

    Reviews 16

    ∙

    Average Rating 5.0

    5

    32% enrolled

    I was studying for coding tests and got stuck on DFS and BFS. I couldn't understand them well and found them difficult. I could somewhat grasp BFS, but DFS was really hard, and now it feels like something just clicked!! Thank you for providing such a high-quality lecture at a low price. Do you have any plans to film other algorithms, like BFS or DP? Please release them, Instructor!!!

    • gaebaljob
      Instructor

      Thank you so much, eovnfjfpa님 :), glad it helped clear things up. I really want to release the lecture too, but I'm working on new challenges lately, which is causing delays 😭😭. I'll get it ready soon! Conquer algorithms/coding tests!!

Similar courses

Explore other courses in the same field!

Free