- 現어비스 대표 및 리드개발자
- 前 네이버 개발자
- 5년차 알고리즘 강사(네이버 / 카카오 / 라인 / 삼성 코딩테스트합격자 배출)
- 19, 20 IT 대기업 코딩테스트 합격자(All Solved)
- 2024 Meta HackerCup 알고리즘 대회 R1 상위 12%
- 자바스크립트 테스트 프레임워크 Mocha.js contributor
- 저서 《 면접을 위한 CS전공지식노트 》 2022 / 국내IT도서 1위 베스트 셀러
- 저서 《 실시간 모니터링 시스템을 만들면서 정복하는 MEVN》 2021 / 국내IT도서 63위 베스트셀러
講義
受講レビュー
- CS知識の正典 | デザインパターン ネットワーク オペレーティングシステム データベース データ構造
- CS知識の正典 | デザインパターン ネットワーク オペレーティングシステム データベース データ構造
- CS知識の正典 | デザインパターン ネットワーク オペレーティングシステム データベース データ構造
- 10週間完成 C++ コーディングテスト | アルゴリズムコーディングテスト
- 10週間完成 C++ コーディングテスト | アルゴリズムコーディングテスト
投稿
Q&A
2-J 반례 질문있습니다.
안녕하세요 동혁님 ㅎㅎ for(int k=1; k이부분이 문제입니다. 여기서 j + k 는 2m - 2 이하의 값을 갖게 되는데 이 경우 배열의 최대값을 초과할 수 있습니다. 이부분을 고쳐보시겠어요? 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 2
- 14
Q&A
2-T 질문 있습니다!!
안녕하세요 민석님 ㅎㅎs.push(temp); ... index[s.top()]지금 보시면 스택에 값을 넣고 그걸 기반으로 인덱싱을 하는데 이경우 동일값이 있을 경우 로직이 망가집니다. 이부분을 고쳐보시겠어요? 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 2
- 17
Q&A
3-I 이해가지 않는 설명이 있어 질문드려요!
안녕하세요 케이님 ㅎㅎarr[1][3]은 수빈이가 x=1에 위치하고, 동생이 x=3에 위치할 때의 값이라는 건데, 그 "값"은 무엇을 의미하나요? 수빈이와 동생이 각각 해당 위치일 때의 시간을 의미하는건가요?-> 네 맞습니다.궁금한것은 궁극적으로 arr[samePos][samePos] 일텐데 이 값을 알아내는 순간은 arr가 필요 없을 것 같아서요.-> 그 전까지의 상태값이 필요하기 때문에 해당 부분을 진행합니다. int visited[2][max_n + 4]이부분에서 2를 max_n + 4로 동일하게 만들어주고 동생 수빈 움직임에 따라 해당 idx 에 최단 거리를 넣어주면서 BFS를 진행해주시면 됩니다. +저희가 y, x 2차원좌표 기반으로 BFS할 때도 visited[y][x] = 최단거리 이렇게 하잖아요? 여기서 y가 동생, x가 수빈... 이런식으로 되는 것입니다. 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 2
- 21
Q&A
3-I 17071 시간 초과
안녕하세요 케이님 ㅎㅎ그리고 이 문제만 6시간 이상 붙잡고 있는데, 이게 맞는건지 잘 모르겠어요.-> 이 문제는 6시간 이상 붙잡고 있어도 되는 문제입니다. 현재 제 코드에서 더 최적화할 수 있는 방법이 뭔지 궁금합니다.-> 이 코드는 더이상 최적화할 수가 없습니다. isUsed 1차원 배열만으로는 짝홀을 기반으로 캐싱하는 것을 구현하지 못합니다. 예를 들어 수빈이가 3초에 왔고 동생이 5초나 7초에 왔을 때 수빈이가 3초에 온 경우의 수 "하나"로 그걸 처리하는데 이 코드는 3, 5, 7 ... 수빈이의 모든 경우의 수를 기반으로 처리하기 때문에 비효율적입니다. 또한, 같은 위치에 도달해도 다른 시간대에서 다시 탐색해야 하는 경우를 놓칠 수 있습니다.(2초에 온 경우의 수, 3초에 온 경우의 수) 실력도 별로 느는 것 같지 않아요. 연습 시간은 너무 많이 걸리고요. 코드도 너무 못 짜는 것 같아요.제 방식이나 생각이 잘못된건가요?-> 음... 저는 요새 케이님 질문 처리하면서 케이님이 잘하고 계신다고 느끼고 있습니다. 코드도 보면 잘 짜신게 눈에 보여서 눈이 즐겁구요. 지금처럼만 해주세요. 고민시간같은 경우 플레는 6시간이하, 골드는 1 ~ 2시간 정도만 고민해주세요. 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림. 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 2
- 21
Q&A
3-A 15686번 시간복잡도 질문 드립니다.
안녕하세요 케이님 ㅎㅎ1번 2번 모두 맞습니다. 잘하셨습니다. ㅎㅎ 감사합니다.
- 0
- 1
- 21
Q&A
3-O 15684 시간복잡도 질문드립니다.
안녕하세요 케이님 ㅎㅎ만약 movePlayer + isSamePosition 를 사용한다면 제 생각에는 300 + 10 = 310 정도를 생각했고, 이로 인해 최종 시간 복잡도는 13억 5000만(450만 * 대략 300) 으로 생각했어요. 이는 13초 정도로 생각했고요.-> 네 어느정도 정확합니다. 정확히는 가능한 가로선 위치: H × (N-1) = 30 × 9 = 270개 위치3개 추가: C(270, 3) = 3,258,555가지3,258,555 × 300 = 약 10억 번 연산가 됩니다. 다만 그게 꼭 13초일 수는 없습니다. 환경마다 시간은 다르기 때문에 코테에서 만약 1억 ~ 10억 정도의 시간복잡도가 나오면 틀릴 것 같은데 -> 시도 하는 생각을 가지셔야 합니다. 따라서 시간제한1초라고 제한되어있어도 코테에서는 그정도 범위라면 시도해야 합니다. 1번시간 초과가 났던 코드, 통과한 코드의 시간 복잡도는 어떻게 계산해야하는가? 계산 결과 어떤 시간 복잡도를 가진다고 봐야하는가?-> 둘 다 최악의 시간 복잡도는 동일하지만 조기종료 때문에 그렇습니다. 2번 if(playerPosition != i) { ret = false; break; //최적화 3: 필수!! 이래야 다 계산 안해도 얼른 체크하고 넘어감 }통과되는 코드는 조기종료조건이 있습니다. 시간초과 되는 코드는 조기종료조건이 있는 것 같지만 결국movePlayer를 통해 모든 경우의 수를 다 진행한 이후 bool isSamePosition(vector & positions){ bool ret= true; for(int i = 1; i 해당 계산된 position을 통해 종료를 하기 때문에 제대로된 조기종료라고 볼 수 없습니다. 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 1
- 18
Q&A
2-G a[i]로 입력을 받는 이유 질문
안녕하세요 ㅎㅎ for(int i = 0; i > a[i];mp[a[i]]++;이부분 말씀이시죠? 변수 a이란 네이밍을 쓰는 것은 짧고 편리하기 때문입니다. 코테는 빨리 푸는게 중요하기 때문에 이런 a, b, c .. 등의 변수명들을 쓰는게 좋습니다. 또 질문 있으시면 언제든지 질문 부탁드립니다.좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)감사합니다.강사 큰돌 올림.
- 0
- 1
- 22
Q&A
7-T 초기조건 관련 질문드립니다.
안녕하세요 ㅎㅎ지금 작성자없음으로 뜨는데 확인가능할까요?
- 0
- 2
- 20
Q&A
공부중에 궁금한게 있습니다.
안녕하세요 ㅎㅎ혹시 스샷 첨부 가능할까요? 저는 잘 뜨는 것으로 보입니다.(사진) 감사합니다.
- 0
- 2
- 26
Q&A
질문하고 싶어서 너무 답답했습니다.
안녕하세요 ㅎㅎ음... 혹시 간단한 자기소개 가능할까요? 사실 수강생님이 어떤 상황인지 알아야 해당 부분에 대한 답변이 가능합니다. 댓글로 좀 그러시면 zagabi@aviss.kr로 보내주시면 답변 드리겠습니다.
- 0
- 1
- 37