[Java] DFS Algorithm Understandable Even for Liberal Arts Students! - Introductory Edition
This is a basic DFS lecture that explains the way a liberal arts major and working developer studied to get a job :) We have prepared a lecture where you can learn by solving problems yourself, with minimal boring theory lectures! After taking this lecture, you will be able to solve silver level DFS problems on your own according to Baekjoon standards.
No more boring theory classes! Learn DFS strategy through problem solving!
Select and focus on only the most frequently asked types!
Ability to solve DFS problems on your own
DFS algorithm is more difficult than you think. Learn with high-frequency problems 💡
Have you ever thought about this?
🤔 How do I know that I should solve this problem using DFS?
🥲 Even though I know what DFS is, I always feel lost. Is there a common solution?
🫠I can't picture recursive functions in my head. How can I organize them so I can understand them?
8-year developer's guide for non-majors DFS Algorithm Lecture 🪢
DFS (Depth First Search) is one of the methods for exploring the entire graph, and is an algorithm that prioritizes 'depth'.
This lecture is an introductory lecture on the DFS algorithm. The goal is to provide hands-on experience with DFS problems by solving the most frequently asked problems . After briefly summarizing the key concepts, we will solve problems of each type to develop the perspective to recognize that "this problem is a DFS problem" and cover the core that runs through all problems.This is a lecture created to conquer DFS :D
This lecture will be of great help to those who have studied the DFS algorithm but struggled to understand it or find it difficult to come up with solutions on their own. Created by a liberal arts major with eight years of experience as a developer, this lecture is designed for non-majors, so I promise it will be easier to understand than any other lecture. Below are comments left on my YouTube channel.
I recommend this to these people 🙋
Those who know basic Java grammar but are preparing for a coding test for the first time
People who have tried to solve DFS problems on their own but still can't get the hang of it
People who feel lost when they actually see the problem even after attending the theory lectures
Lecture Features ✨
#1. The DFS problem Let's summarize the hints.
A common comment students make during my lectures is, "I didn't know I had to solve this using DFS."So, I start by reading the problem together and answer the question, "What keywords should have led me to DFS in this problem?"
#2. As the program progresses Changing data structures Let me show you.
This course is not about replacing explanations with simple pictures or just explaining things with words and code!
We'll use animations to show you everything from how to define and initialize data structures to how values change step by step to find the correct answer.
#3. Penetrating the problem Let's summarize the main points.
While implementations vary from problem to problem, the common threads among problems requiring the DFS algorithm remain constant. This lecture willoutline the key elements for successfully solving DFS problems, organized by type, and provide time to solidify and recap the core concepts for each problem.
After going through this process, you will be able to solve new DFS problems on your own by quickly determining what parts are common and what has changed!
What you'll learn 📚
In this lecture, we've selected 12 of the most frequently solved and most challenging DFS introductory problems (Silver 4 to 2 levels) registered on Baekjoon. We then divide these problems into two subtypes and summarize the core concepts required for each type. The detailed types and problems are as follows.
Type 1. Find connected elements type
Virus (2606) (Free to Download)
Number of connected elements (11724)
Algorithm Class - Depth-First Search 1 (24479)
Algorithm Class - Depth-First Search 2 (24480)
DFS and BFS (1260)
Degree of kinship calculation (2644)
Finding Parents of a Tree (11725)
Type 2. Finding the same category
Organic Cabbage (1012) (Free Publication)
Infiltration (13565)
Number of islands (4963)
Floor decoration (1388)
Jump King Charlie (Small) (16173)
Expected Questions Q&A 💬
Q. Why are the lectures so short?
As an instructor, it would be most advantageous for me to add a lot of problems to create one large lecture and increase the price accordingly. However, considering that the explanations and content required for each level vary, and most of my subscribers/students are job seekers without income, I thought it would be better to break it down into smaller chunks and lower the price. Therefore, I made it shorter and more compact than other courses.
Q. I don't have many problems, but can I still understand DFS?
For the reasons mentioned above, I've divided the course into smaller sections, and following the introductory course, I'm also preparing applied and advanced courses covering Gold and Platinum levels. Therefore, I believe it would be deceptive to say, "This course alone will teach you how to solve all DFS problems!" (After all, studying requires time for independent reflection). However, I can promise you that no other course introduces DFS as easily as this one, and that after completing it, you'll be able to study and understand DFS on your own. Therefore, I can confidently recommend this course to anyone who doesn't need simple solution videos and simply wants to learn how to fish.
Q. There's a solution on YouTube too, isn't it the same?
While the general flow remains the same, due to the nature of YouTube, videos cannot be long, so I omitted most of the additional explanation. Many subscribers asked questions and expressed their disappointment in the comments, and to address this, I created an online course.
I've tried to present everything I know in the simplest, most concise way possible. In fact, the virus and organic cabbage topics are provided free of charge in the relevant lectures and are also available on YouTube. It'll be easier to judge for yourself if you see how the brief summary on YouTube is explained in more detail in this lecture, so please refer to it!
Q. How long does it take to get a response if I ask a question?
Unless something unusual comes up, I'll respond within 24 business hours, and at the latest, within 72 hours. Having taken many online classes, I've found that the faster the instructor responds, the faster the learning pace, making them more effective than offline classes. However, I also know that a slower instructor response time can decrease motivation, so I check comments daily and answer questions!
Q. Are there any questions I shouldn't ask?
As I say in every video, all questions are always welcome. Most likely, other students have the same questions I've had. However, I think establishing a few rules will make it more beneficial for everyone to ask questions.
1. Please leave a question related to the video!
Since each video covers different topics, I think it would be helpful for everyone if you could post your questions on the relevant video so that we can help each other.
2. For life counseling/employment-related questions, please contact us through the mentoring section.
Since answers to these questions can vary depending on each individual's situation, asking them in a more personal manner allows me to provide more accurate guidance. Publicly answering these questions would only yield vague answers, so please leave your questions in the mentoring section and I'll be happy to answer them.
3. Please also submit questions like "Why not?" through the mentoring section.
Sometimes, frustrated, people copy and paste the entire code and ask for help. These questions are unlikely to be helpful to others, and each person's situation is unique. Therefore, if you contact us individually through the Mentoring section, we'll explain what's wrong, why it's wrong, and even how to fix it!
We provide the PPT used in the lecture in PDF format.
Player Knowledge and Precautions
The lecture proceeds assuming that you understand the basic grammar of Java.
If you have experience with DFS at least once, it will be easier, but don't worry, there is a brief basic explanation for those who don't know DFS!
Introducing the Knowledge Sharer ✒️
Hello :) I started out as a liberal arts student majoring in business and economics, and now I've been working as a developer for eight years at a large corporation. Thinking back to when I first started learning about programming eight years ago, it felt overwhelming and challenging. However, by organizing and solving problems in my own way and developing my own strategies, I think I was able to find a job a little faster and more successfully. Especially for non-majors who struggle with coding tests, this lecture, taught by a non-major, will make it easier to understand. Thank you for your support! :)
Resume / Portfolio / Personal Videos
8 years of experience as a developer at a large company
문과생도 이해하는 알고리즘 강의를 가르치는 강사 개발자로 취직하기입니다 :) 저는 문과생 출신으로 현재는 8년차 대기업 개발자입니다. 처음 코딩을 접하고 코딩 테스트 준비를 하던 막막한 시절을 떠올리며, 어떻게 하면 조금 더 쉽게 설명할 수 있을지, 저 같은 비전공자 문과생도 이해하고 새로운 기술을 습득할 수 있을지 고민하며 강의를 제작하고 있습니다. 유튜브 통해서도 무료 강의 진행하고 있으니 많은 관심 부탁 드립니다! https://www.youtube.com/@gaebal
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??
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!
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!!!
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!!