큰돌
@kundol
Lead 레벨·
SW 엔지니어
어비스
수강생
9,884
수강평
697
강의 평점
4.8
멘토링 신청
2
멘토링 리뷰
-
멘토링 평점
-
- 現어비스 대표 및 리드개발자
- 前 네이버 개발자
- 5년차 알고리즘 강사(네이버 / 카카오 / 라인 / 삼성 코딩테스트합격자 배출)
- 19, 20 IT 대기업 코딩테스트 합격자(All Solved)
- 2024 Meta HackerCup 알고리즘 대회 R1 상위 12%
- 자바스크립트 테스트 프레임워크 Mocha.js contributor
- 저서 《 면접을 위한 CS전공지식노트 》 2022 / 국내IT도서 1위 베스트 셀러
- 저서 《 실시간 모니터링 시스템을 만들면서 정복하는 MEVN》 2021 / 국내IT도서 63위 베스트셀러
🚀 개발자 멘토링 by 큰돌
네이버 출신 개발자 · 스타트업 CEO · 『면접을 위한 CS전공지식노트』 저자
포트폴리오 첨삭 + 코드 리뷰, 취업상담 한 번으로 취업 경쟁력 200% 상승!
👨🏫 멘토 소개
현) AI 핀테크 스타트업 어비스(AVISS) 대표
전) 네이버 개발자,
저서 『면접을 위한 CS전공지식노트』(IT 분야 1위), 『MEVN 실시간 모니터링 시스템』
- 수상 카카오프론트엔드챌린지 6위, 스타트업 해커톤 1위, 공군/육군 개발 표창 다수
강의 인프런 베스트셀러 ‘10주 완성 C++ 코딩테스트’, ‘CS지식의 정석’
유튜브 큰돌의 터전 채널 운영 (IT/개발 취업 콘텐츠)
실제 네카라쿠배 취업/이직 성공 사례 수십 건, 데이터 기반 피드백 제공
🎯 멘토링 포커스
| 분야 | 제공 내용 |
|---|---|
| 포트폴리오 첨삭 | 기획 → 설계 → 구현 → README까지 등 |
| 코드 리뷰 | 실무 수준 코드 리뷰, 성능 최적화 |
| 면접 준비 | CS 전공지식 압축 정리, 예상 질문 및 꼬리질문 피드백 |
| 커리어 전략 | 신입/이직 전략, 부트캠프 이후 로드맵 설계 |
🔥 이런 분께 추천해요
🧑💻 포트폴리오를 깔끔하게 정리하고 싶은 분
🎯 코딩테스트 합격 이후 면접 준비가 막막한 분
🚀 스타트업/빅테크로 이직을 꿈꾸는 개발자
🏆 실력 있는 멘토에게 코드 품질/아키텍처 피드백 받고 싶은 분
- 부트캠프에 대해 고민이 있는 분
📈 진행 방식
사전 설문 – 현재 상황 & 목표 파악
1:1 온라인 세션 – 포트폴리오/코드 실시간 피드백
강의
수강평
- 10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
게시글
질문&답변
코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.
안녕하세요 ㅎㅎ중소기업 입사 코딩테스트 기준으로 질문이 있습니다.-> 이정도면 보통 골드 1 ~ 3정도면 합격할 수 있습니다. 문제 푸는 속도 -> 1시간 이내가 가능하다고 가정했을 때백준 티어 어디까지는 풀어낼 수 있어야 할까요?-> 1시간 이내로 골드1 ~ 3문제를 풀어내야 합니다. 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 2
- 10
질문&답변
2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.
아 해결하셨군요 ㅎㅎ감사합니다.
- 0
- 2
- 30
질문&답변
오버라이딩 관련하여 질문드립니다.
안녕하세요 승환님 ㅎㅎstatic 메서드는 인스턴스 메서드와 달리 런타임이 아니라 컴파일 시점에 바인딩됩니다. Java에서 우리가 말하는 메서드 오버라이딩의 핵심 효과는 런타임 다형성이기 때문에 런타임 다형성이 들어가야 올바르게 오버라이딩이 들어간 것입니다. 런타임에 JVM이 실제 객체 타입(Child)을 보고 메서드를 결정하는 것이죠. 승환님 코드를 보면 오버라이딩인 것 같지만 다형성이 결여된 컴파일 시점에 이미 child로 결정된 바인딩에 불과합니다. 여기서 다형성이란 하나의 인터페이스(또는 부모 타입)로 여러 다른 객체를 동일하게 다루면서, 실제 동작은 객체 타입에 따라 달라지는 특성입니다. class Parent { static void display() { System.out.println("parent static"); } } class Child extends Parent { static void display() { System.out.println("child static"); } } class Parent2 { void display() { System.out.println("parent method"); } } class Child2 extends Parent2 { @Override void display() { System.out.println("child method"); } } class Main { public static void main(String[] args) { Parent c = new Child(); c.display(); Parent2 p = new Child2(); p.display(); } }출력:parent staticchild method 지금 Child의 경우 참조변수 타입이 Parent이기 때문에 Parent.display()가 호출됩니다 Child2의 경우 올바른 오버라이딩 이기 때문에 parent2로 정의했지만 child로 나옵니다.즉 부모 타입의 참조변수로 자식 객체를 가리켜도, 실제 실행은 자식의 메서드가 선택되는 것이 다형성입니다 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 2
- 32
질문&답변
2주차 개념 #4-2. 인접행렬 질문있습니다.
안녕하세요 재윤님 ㅎㅎ지금 코드를 보면 1 -> 2 1 -> 3 -> 4이렇게 연결되어있는 그래프로 보입니다. 네 코드를 봤을 때 모든 정점을 탐색하는 코드가 맞습니다. #include using namespace std; const int V = 10; bool adj[V][V]; bool visited[V]; void go(int from) { visited[from] = 1; cout Q1. main() 내부의 visited[j]==0 이 꼭 필요한 이유,-> main함수내에는 visited가 없습니다. 그리고 main()에서 go()한 번 호출후에 exit(0) 시키지않고 계속해서 go()를 더 호출하도록-> main - go(i)의 의미는 만약 i로부터 연결된 간선이 있다면 해당 i로부터 탐색을 이어나가는 코드입니다. 만약 정점들의 집합이 그저 1 -> 2 -> 3 이렇게 단순하다면 저거 한번 호출하고 종료시켜도 되지만 1 -> 2 3 -> 4 -> 5이렇게 된 경우에는 main함수내에서 go를 여러번 호출시켜야 모든 정점들을 탐색가능합니다. 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 2
- 40
질문&답변
1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.
안녕하세요 선교님 ㅎㅎint combi(vector &a, int start, vector &b) { if(b.size() == 7){ int total = 0; for(int i : b) total += i; if(total == 100){ print(b); return 1; } }기저사례도 잘 하셨습니다. 다만 return 1 보다는 process exit call 과 같은 의미로 쓰이는 것 같아서 return 0이 나을 거 같습니다. 이러한 상황에서 어떻게 학습하면 좋을까요?-> 제코드와 비교했을 때 9C2와 9C7의 차이밖에 없습니다.잘 짜셨어요 ㅎㅎ 그리고 이럴 때 어떤 것이 더 좋은 코드인지 판별하는 것이 시간복잡도와 공간복잡도일까요?-> 네 맞습니다. 그러한 부분을 고려해야 하는데요. 이 코드의 경우 제 정답코드와 비교해도 딱히 큰 차이도 없습니다. 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 2
- 32
질문&답변
조합 재귀 풀이 확인 해주시면 감사하겠습니다.
안녕하세요 재윤님 ㅎㅎ교안에 나온 재귀함수로 구현한 조합 방식으로 풀어봤는데 (9C7로 접근하였습니다.) 9C7로 푸는 경우에 이렇게 풀어도 될까요??-> 네 가능합니다. 9C7 또는 9C2 모두 가능합니다. 시간복잡도를 어떻게 구해야할지 잘 모르겠습->함수의 실행횟수 * 메인로직이라고 보시면 됩니다. 함수는 총 9C7 실행되며 메인 로직은 다음과 같습니다. 전체 합치는 로직 + 정렬, for문이기 때문에 이중 제일 높은 정렬 -> nlogn * 9C7입니다. if(v.size()==7) { if (accumulate(v.begin(),v.end(),0)==100) { sort(v.begin(), v.end()); for(int j : v) cout 이렇게 문제에따라 n을 최대 크기로 볼지, 입력의 갯수로 볼지 다르게 판단해야하는건가요??-> 입력 또는 n 이 아니라 메인로직과 관련된 변수의 최대개수를 중심으로 봐야 합니다. 예를 들어 n개의 난쟁이와 m개의 백설공주가 주어진다. n개의 난쟁이에서 9개를 골라... 이런 말이 있고 백설공주에 대한 내용은 그냥 사이드에 불과한거라면 메인 로직은 nC9구나 -> n을 중심으로 시간복잡도 판별 이렇게 가야 합니다. 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 2
- 46
질문&답변
함수별 시간복잡도
안녕하세요 재윤님 ㅎㅎC++ 교안에 'sort()의 시간 복잡도는 O(nlogn) 이다.' 이런식으로 각 함수별 시간복잡도가 기재되어있던데, 코테에서 사용하는 함수가 상당히 많은데, 각 함수마다 시간복잡도 얼마인지 전부 외워야-> 네 그렇긴한데요. 교안 1회독 이후에 개념 + 문제풀이 하시다보면 자연스레 외워질거에요. 감사합니다.
- 0
- 2
- 49
질문&답변
3-h 질문입니다.
안녕하세요 성찬님 ㅎㅎfor(int i = k; i != n; i =prev[i]){prev[]의 초기값이 0이기 때문에 prev가 0이 되면 여기서 무한 루프가 발생할 수 있습니다. 이부분 때문에 틀린 것 같아요 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 1
- 35
질문&답변
안녕하세요 선생님. 시간 복잡도 4번 질문있습니다.
안녕하세요 재윤님 ㅎㅎ또한 실제 코딩테스트 시험 치면서도 위의 과정으로 시간 복잡도를 구하는건가요??-> 아닙니다. 이건 기본을 배우는거라 쉽게 저렇게 한거구용. 문제 풀면서 문제범위기반으로 시간복잡도 구하는 방법을 알려드릴거에요. ㅎㅎ Q2. 네 맞습니다. 잘 하셨습니다. ㅎㅎ 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 2
- 41
질문&답변
1-I 문제 질문 드립니다.
안녕하세요 ㅎㅎ배열, 그리고 map을 기반으로 하셨기 때문에 시간복잡도도 각각 O(1), O(logN)으로 괜찮습니다. 흠잡을 곳 없는 좋은 코드네요 ㅎㅎ 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 2
- 54





