큰돌
@kundol
Lead 레벨·
SW 엔지니어
어비스
수강생
9,937
수강평
702
강의 평점
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++ 코딩테스트 | 알고리즘 코딩테스트
게시글
질문&답변
모듈러 연산 값이 10이 아닌 경우도 있지 않나요?
안녕하세요 ㅎㅎ11을 모듈러한 수 중 가장 큰수 = 10만약 10이 나왔을 경우 -> 가지치기진행(그 보다 큰수는 x) 라는 의미입니다. ret이 10이 아니면 해당 부분은 가지치기가 일어나지 않을거에요 감사합니다.
- 0
- 2
- 25
질문&답변
3-I 코드 질문드립니다.
안녕하세요 ㅎㅎvisited[1]은 bro[next]와 비교해서 나중에 조건 맞으면 찍는 방식인데 “최단 시간에 그 위치에 도착한 홀수 시간”이어야 합니다. 즉, visited[1]의 경우도 BFS에서 시간 홀짝 기준으로 채워서 최단거리를 만들어야 합니다. 예를 들어 어떤 위치 x에2초에 도착 가능4초에도 도착 가능6초에도 도착 가능할 수 있다고 해보겠습니다.이건 왕복 이동 때문에 가능합니다. 예를 들어 x -> x+1 -> x처럼 2초를 더 써서 같은 위치에 다시 올 수 있습니다.그래서 어떤 위치는 한 번 도착한 뒤에도 같은 홀짝 시간대로 계속 다시 도달할 수 있습니다.그런데 중요한 것은 “홀수 시간에 처음 가능한 시각”과 “짝수 시간에 처음 가능한 시각”을 정확히 알아야 한다는 점입니다.현재 코드의 논리는 대략 이런 거 같은데요. visited[0][x]가 이미 있으면, 동생 시간 bro[x]와의 차이가 짝수인지 보고 그 시간에도 있을 수 있다고 치자.이 아이디어 자체는 방향은 맞는 부분이 있습니다.한 번 도착한 뒤 2초씩 소모해서 제자리에 다시 올 수 있으니까요.하지만 문제는 그걸 visited[1]에 채우는 방식이 BFS 상태 전이와 전혀 맞지 않는다는 점입니다.왜냐하면 visited[1][x]는 원래“홀수 시간에 x에 도착하는 최소 시간”이어야 하는데, 지금 코드는“동생이 x에 오는 시간과 우연히 맞으면 그 시간으로 기록”해버립니다.즉 visited[1]이 수빈이의 실제 최단 도달 시간 배열이 아니라, 동생 스케줄에 종속된 보정 배열이 되어버립니다.이러면 어떤 문제가 생기냐면 다음과 같습니다.첫째, 어떤 위치에 홀수 시간으로 더 빨리 갈 수 있어도 그 정보가 전파되지 않습니다.BFS에서는 예를 들어 3초에 x 도착이 있으면 거기서 다음 상태들인 4초의 x-1, x+1, 2x가 퍼져나갑니다.그런데 지금 방식은 visited[1][x]를 나중에 찍기만 하고, 그 상태에서 다시 다음 칸으로 탐색을 이어가지 않습니다.즉 홀수 시간 상태를 “도달 가능한 상태”로 취급하지 않기 때문에홀수 시간 상태를 기반으로 만들어지는 다음 최단 경로들이 전부 누락되서 틀립니다. 둘째, visited[1][x]의 값이 최단이라는 보장이 없습니다.BFS로 채운 배열은 큐 순서 때문에 처음 방문한 시각이 최단입니다.하지만 지금은 bro[next]와 비교해서 특정 시간으로 박아버리므로, 그 시간이 정말 수빈이가 홀수 시간으로 next에 도달하는 최소 시각인지 보장되지 않습니다. 그래서 틀린 것 같습니다. (나머지 부분은 다 잘짜셨어요 ㅎㅎ) 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 2
- 43
질문&답변
3-N 질문 있습니다.
안녕하세요 승헌님 ㅎㅎ코드가 직관적이고 좋네요. 다만 아쉬운 부분은 pow -> 얘가 double형을 반환해서 지금코드는 괜찮았지만 다음에 쓸 때는 int로 변환하거나 타입변환 부분 등을 신경써줘야 되는 부분이 있어요.n = 1 이런식으로도 가능합니다 . 다른 부분은 다 괜찮습니다. 잘짜셨네요 ㅎㅎ 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 2
- 41
팀프로젝트
네이버 합격한 썰푼다
- 0
- 0
- 195
질문&답변
학습방법
안녕하세요 ㅎㅎ강의를 듣기전에 알고리즘 교안을 다 공부하고 강의시청을 들어가야하나요?-> 교안 1회독 -> 강의시청하시면 됩니다. C언어 배우셨기 때문에 금방하실거에요 ㅎㅎ 감사합니다.
- 0
- 2
- 71
질문&답변
4-H 질문 있습니다 (코드 리뷰)
안녕하세요 세림님 ㅎㅎ코테때 이렇게 생각하시고 하는거 무방합니다.벽허물기 이부분이 게 조금 아쉽긴하죠 너무 많은 중복 계산이 생기긴하지만 괜찮습니다. 나머지 코드 너무 좋네요 ㅎㅎ (그리고 comp 사이즈가 2504인 것은 모든 칸이 벽으로 차있는 경우를 상정하여 50*50 + 알파로 하신 게 맞나요?)네 맞습니다. 최대크기 + 4 이렇게 하는게 좋아요 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 2
- 53
질문&답변
코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.
안녕하세요 ㅎㅎ중소기업 입사 코딩테스트 기준으로 질문이 있습니다.-> 이정도면 보통 골드 1 ~ 3정도면 합격할 수 있습니다. 문제 푸는 속도 -> 1시간 이내가 가능하다고 가정했을 때백준 티어 어디까지는 풀어낼 수 있어야 할까요?-> 1시간 이내로 골드1 ~ 3문제를 풀어내야 합니다. 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 2
- 94
질문&답변
2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.
아 해결하셨군요 ㅎㅎ감사합니다.
- 0
- 2
- 57
질문&답변
오버라이딩 관련하여 질문드립니다.
안녕하세요 승환님 ㅎㅎ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
- 48
질문&답변
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
- 50





