소개
문과생도 이해하는 알고리즘 강의를 가르치는 강사 개발자로 취직하기입니다 :)
저는 문과생 출신으로 현재는 8년차 대기업 개발자입니다. 처음 코딩을 접하고 코딩 테스트 준비를 하던 막막한 시절을 떠올리며, 어떻게 하면 조금 더 쉽게 설명할 수 있을지, 저 같은 비전공자 문과생도 이해하고 새로운 기술을 습득할 수 있을지 고민하며 강의를 제작하고 있습니다.
유튜브 통해서도 무료 강의 진행하고 있으니 많은 관심 부탁 드립니다!
https://www.youtube.com/@gaebal
강의
전체2수강평
- 재밌어요! 덕분에 많이 배워갑니다!
정원빈
2024.02.18
1
- 열심히 복습하겠습니다
김병호
2024.02.15
1
게시글
질문&답변
2024.04.29
강사님 안녕하세요! 깊이 우선 탐색 2 (백준 24480)에서 제공하는 풀이 코드에서 궁금한 점이 있어서 질문 드립니다!
찬혁님 안녕하세요 🙂 알림 메일을 늦게 확인해서 이제야 답변 드려서 죄송합니다 ㅠ 많이 늦어졌네요. 댓글 남겨주신 대로 위 답안은 정답이 잘 나오는 것 같아요! 그리고 MAX와 N+1과 관련된 질문에 대해서는 찬혁님 말씀이 맞습니다! N+1로 해도 정답이 나오고, 이렇게 짜는 게 가장 효율적인 답변이 되는 것이 맞습니다. 다만 때에 따라서 N+2를 해야되는 경우도 생기고, N+100도 필요할 때가 있더라고요. 그런데 시험장에서 N+2인지 N+100인지를 의심하고 문제를 확인하기 까지는 시간이 꽤나 오래 걸리고, 실제로 이것 때문에 떨어지는 경우가 종종 발생하기 때문에, 그냥 문제에서 나오는 가능한 최댓값으로 시작하는 것이 가성비 좋은(?) 해결책이라 이렇게 작성하고 추천드리고 있습니다. 그런데 찬혁님께서 가능하시다면, 더 최적화 된 답변을 제출하는 게 당연히 더 좋은 코드이고 정답이 됩니다!
- 1
- 3
- 62
질문&답변
2024.04.11
[바닥장식][런타임에러] 질문 있습니다.
강한 타조님 안녕하세요! AI에게 한발 늦었네요 ㅠㅠ 이미 발견하신대로 초기화에 문제가 있었던 것 같습니다! 오늘도 공부 화이팅하세요 :)
- 1
- 3
- 76
질문&답변
2024.03.29
촌수 계산
김학준님 안녕하세요 🙂 강의를 열심히 들어주셔서 감사합니다!! 제가 질문을 이해한 건 "왜 return을 했지만 기대한대로 함수 동작이 종료가 안 되지?" 라는 건데 맞을까요? 만약 맞다면, 재귀 함수로 호출이 되다보니 return 이 불린다고 하더라도 이 재귀 호출이 전부 종료되는 것이 아니라 바로 직전 단계로 올라가기만 합니다. 그런 뒤에, 원래 하던 동작을 계속 반복할 것이기 때문에, 만약 재귀 함수를 완전히 종료하고 싶다면 차라리 별도 flag 변수를 만들어서 flag == true 이면 더 이상 함수 동작을 하지 않도록 수정이 필요해보여요! 제가 잘못 이해한 거면 다시 알려주세요! 감사합니다 🙂
- 1
- 3
- 92
질문&답변
2024.03.25
연결 요소의 개수 (백준 11724)
김학준님 안녕하세요 🙂 네 맞습니다! 제가 정리한 것보다 가독성이 좋은 것 같아 다른 수강생 분들께도 정답으로 참고하라고 말씀 드리고 싶네요!! CS면접의 핵심은 "CS 배경지식 좀 있나?"를 보기 위한 것이에요. 그래서 어떤 알고리즘, 기술, 개념에 대해서 질문을 했을 때 가장 기본적인 답변 그게 어떤 개념인지(동작 원리) 정도를 설명하는 것 같아요. 그런데 그것보다 한 단계 더 나아가자면 "어떤 문제가 있었길래 이런 기술이 만들어진 건지, 그래서 실제로 어떻게 해결해서 어떤 효과가 있는지"를 설명할 수 있으면 제일 좋은 것 같아요. 여기서 기술의 히스토리 까지 알아서 줄줄이 말할 수 있다면야 제대로 알고 있다고 인정 받겠지만 이건 짧은 시간에 다 습득하긴 욕심이고, 왜 이 기술이 필요했는지(배경) + 이 기술의 효과/해결한 기술적 문제를 스토리로 풀어서 설명하는 게 필요합니다. 그래서 공부 방법으로는 검색해서 나오는 CS 주제를 하나씩 잡고 배경과 효과에 대해서 간단하게 정리해야합니다. 그런 뒤 스터디를 꾸릴 수 있다면 서로 질문해주고 실전처럼 스토리로 풀어서 답변해보는 연습을 해보시고, 그 과정 중에 서로 아는 지식을 공유해서 더 좋은 답변을 만들 수 있으면 좋구요! 막판에 한번에 외우려고 하시기 보다 매일 조금씩 알아보고 관심을 가지시면 훨씬 수월하게 준비할 수 있을 거에요 🙂 혹시 이 외에도 질문 있으시면 언제든 남겨주세요~!
- 1
- 1
- 61
질문&답변
2024.03.19
그래프 짤 때 adjacency matrix vs adjacency list
안녕하세요 David님 🙂 질문 하나씩 답변 드릴게요! List vs. Matrix 말씀하신대로 List를 사용하는게 메모리에서 훨씬 유리하고 코딩하는 것도 조금 더 간단할 수 있을 것 같아요(물론 코딩 부분은 선호도의 차이일 수도 있지만요). 그에 비해 Matrix는 성능이 더 좋습니다. List는 LinkedList 자료구조와 비슷하게 다음 요소를 하나씩 순차적으로 접근해야되는 반면, Matrix는 특정 위치를 index 기준으로 접근하기 때문에 조금 더 빠른 경향이 있습니다. 대부분의 자료구조들을 볼 때 나타나는 공통점인데, 메모리를 더 쓰면 속도가 빨라지고, 메모리를 아끼려고 하면 속도가 조금 느려집니다 (일종의 trade-off이고 둘다 개선할 수 있는 기술을 혁신이라고 하는 것 같아요). 그런데 코딩테스트/Leetcode 단계에서는 이 둘의 성능 차이가 크게 있냐면 그렇진 않은 것 같아요! 즉, List만 써서 풀어도 문제 없을 거고, 저는 강의를 하는 차원에서 둘다 보여드리기 위해서 이렇게 만들었는데, List만 사용하시는 게 한 풀이만 공부하고 적용하는 것이라 더 쉬울 수도 있습니다! 리스트 안에 리스트 vs. 해시맵 안에 리스트 둘 중 어떤 게 더 보편적인지는 잘 모르겠지만, 둘다 정답이 될 수 있습니다! 제가 C++ 프로그래밍을 먼저 시작해서 2차원/3차원 배열을 쓰는 게 훨씬 쉽다고 느낄 수 있는데요, 문제를 푸는 관점에서는 둘이 동일한 동작을 하기 때문에, 둘 중 원하시는 것을 선택하시면 될 것 같아요! list vs. set 이 부분은 제가 이해를 잘못 한 것 같아요. 각 노드에 대한 visited 정보를 list로 관리해야지 해당 노드가 방문 되었는지 아닌지를 판단할 거라서 list를 사용했는데, set는 중복이 없는 자료구조이기 때문에 처음 초기화를 하고나면 False라는 Boolean 변수 하나만 남지 않을까요? 중복이 허용되어야 하는 자료구조라서 set이 잘 맞을지는 모르겠어요! 혹시 제가 잘못 이해한 거라면 다시 한번 질문해주세요! 오늘도 공부하시느라 고생 많으셨습니다 :)
- 1
- 2
- 103