코테 뿌시기!
38군데 합격 비법, 2024 코딩테스트 필수 알고리즘
₩165,000
초급 / Python, 코딩 테스트, data-structure, 알고리즘
5.0
(213)
초보자도 쉽게 이해하는 단계별 설명으로, 막연했던 코딩 테스트가 명확해집니다. 필요한 것만 배우고 바로 실전에 적용하세요!
초급
Python, 코딩 테스트, data-structure
7년차 서버개발자입니다
다양한 강의를 올려보고 싶습니다!
파이썬, 웹개발, 알고리즘, 개발자 취업 등등..
유튜브 채널 딩코딩코를 운영하고 있습니다
https://www.youtube.com/@%EB%94%A9%EC%BD%94%EB%94%A9%EC%BD%94
코테 뿌시기!
38군데 합격 비법, 2024 코딩테스트 필수 알고리즘
₩165,000
초급 / Python, 코딩 테스트, data-structure, 알고리즘
5.0
(213)
초보자도 쉽게 이해하는 단계별 설명으로, 막연했던 코딩 테스트가 명확해집니다. 필요한 것만 배우고 바로 실전에 적용하세요!
초급
Python, 코딩 테스트, data-structure
6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
₩385,000
5일만
25%
₩288,750
초급 / 이력서, Spring, Java, MySQL, Redis
5.0
(23)
모든 이력서가 비슷해 보이는 세상, ‘차별화’가 합격을 만듭니다. 6주간, 백엔드 실무자가 직접 전하는 실전 이력서 전략 4가지를 배우세요.
초급
이력서, Spring, Java
모집마감
개발자 취업 뽀개기 오프라인 모임 2회차 (3년차 이하)
₩33,000
입문 / 이력서
신청
25. 01. 02 ~ 25. 01. 13
일정
25. 01. 19 ~ 25. 01. 19
입문
이력서
단 60분! 파이썬 핵심 개념 초압축 강의 - 이론보다 이해 중심
무료
입문 / Python
4.8
(86)
60분안에 파이썬의 핵심 개념을 이해시키려고 합니다! 맹목적인 문법이 아닌, 왜(Why)와 언제(When) 쓰는지에 집중했습니다
입문
Python
질문&답변
1주차 숙제 추가문제 질문 드립니다!
안녕하세요 영욱님! 좋은 질문 감사합니다문자열 요약 문제에 관한 두 가지 접근법 모두 유효합니다. 이 문제의 핵심은 입력값의 조건을 정확히 이해하는 것이라고 생각됩니다"입력으로 소문자의 알파벳 순으로 정렬된 문자열이 입력됩니다"라는 입력값의 조건 때문에, 두가지 풀이 방법 모두 훌륭한 해결 방법입니다!연속 문자 카운팅 방식: 문제의 예시와 의도에 가장 부합하는 방식으로, 연속된 같은 문자의 개수를 세어 표현합니다.아스키코드(전체 카운팅) 방식: 입력 문자열이 이미 알파벳 순으로 정렬되어 있기 때문에, 이 방식도 결과적으로 요구사항을 충족합니다.이처럼 문제 해결 시 입력값의 특성과 조건을 잘 활용하면 다양한 접근법이 가능해집니다. 알고리즘 문제를 풀 때는 문제의 제약조건과 가정을 정확히 파악하는 것이 중요합니다. 두 방식 모두 O(n)의 시간복잡도를 가지며 효율적인 해결책을 제시하셨습니다.결국 문제 해결의 다양성을 보여주는 좋은 예시라고 할 수 있습니다. 동일한 결과를 얻더라도 문제의 조건과 상황에 따라 여러 가지 접근법이 가능하다는 점을 잘 보여주고 있습니다!영욱님께서 자바로 문제를 새롭게 풀어보시고, 또 여러 고민을 해주시는 모습 넘넘 좋습니다!! 언제든 편하게 질문해주시고 좋은 하루 되시길 바랍니다!!
질문&답변
k번째 값 출력하기 문제에서 이렇게 풀어도 되나요?
안녕하세요 아자아자님!! 좋은 질문 주셔서 감사합니다배열을 활용한 접근 방법도 아주 좋은 풀이 방법입니다! 실제로 문제를 푸는 방법은 여러 가지가 있을 수 있고, 각각 장단점이 있습니다.배열을 사용한 접근법의 장점은 다음과 같습니다.구현이 직관적이고 이해하기 쉽습니다코드가 간결합니다한 번의 순회로 답을 찾을 수 있습니다다만 다음과 같은 트레이드오프가 있습니다.공간 복잡도: O(n) 추가 메모리가 필요합니다 (링크드리스트의 모든 노드를 배열에 저장)원래 강의에서 보여드린 방법들(길이 계산 방식과 투 포인터 방식)은 추가 메모리 없이 O(1) 공간으로 해결 가능합니다k번째 값 출력하기 문제 같은 경우는 공간 복잡도가 매우 높다면 어떤 문제가 생길까? 라는 시작점에서 나온 문제인지라, 실제 면접장에서는 아마 각 해결방법의 장단점을 따져봐야 할 것이라고 생각됩니다. 면접관에게 여러 접근법의 장단점을 설명하고, 상황에 맞는 최적화된 방법을 선택하는 것이 좋은 인상을 줄 수 있습니다!알고리즘 문제 풀이에서는 다양한 접근법을 시도해보고 각 방법의 시간/공간 복잡도를 비교해보는 것이 중요합니다. 학습 단계에서는 다양한 방법으로 풀어보는 것이 이해도를 높이는 데 도움이 됩니다. 그 점에서 아자아자님처럼 새로운 풀이 방법으로 시도해보신 점 매우 훌륭하다고 생각합니다!!오늘도 아자아자 빠이팅 하시길 바라겠습니다!!
질문&답변
해결 방법?에 대한 고민
안녕하세요 hoo님! 좋은 질문 감사합니다 성능 개선 경험을 효과적으로 어필하는 방법에 대해서는 두 가지 접근법을 모두 활용하는 것이 좋습니다! 모든 방안을 다 시도해봤다고 말씀하실 필요는 없습니다! 현실적으로 시간과 리소스 제약 때문에 모든 방안을 테스트하기는 어렵죠. 대신, 문제 해결 과정에서 고려했던 대안들과 최종 선택의 근거를 명확히 설명하는 것이 중요할 것 같습니다. 예를 들면, "인덱스 추가, 쿼리 재작성, 테이블 파티셔닝 등 여러 방안을 검토했습니다. 그 중 테이블 재구성 방식을 선택한 이유는 기존 데이터 구조와의 호환성을 유지하면서도 가장 큰 성능 개선 효과를 볼 수 있다고 판단했기 때문입니다." 정도로 서술해주셔도 좋을 것 같습니다!네 그렇게 진행해주셔도 좋습니다! 본인이 실제로 구현한 방식의 효과와 결과를 구체적인 수치와 함께 제시하세요. "이 방식으로 쿼리 실행 시간을 60% 단축했고, 서버 부하도 30% 감소시켰습니다"처럼 명확한 성과를 보여주는 것이 훨씬 설득력 있습니다.면접에서 "왜 다른 방법은 고려하지 않았나요?"라는 질문이 나온다면 솔직하게 대응하셔도 좋을 것 같습니다 "모든 방안을 실험해보지는 못했지만, A, B, C 방식을 검토했고, 그 중 B가 가장 효율적이라고 판단했습니다. 시간과 리소스가 더 있었다면 D, E 방식도 테스트해볼 가치가 있었겠지만, 주어진 환경에서는 최적의 결정이었다고 생각합니다."요런 식으로 문제의 정확한 원인을 파악했고, 여러 대안의 장단점을 분석했으며, 이에 대한 지표로 성과를 측정했다는 식으로 표현하시면 엔지니어 적인 의사 결정 능력을 드러내주실 수 있을 것 같습니다!다양한 고민을 하시면서 성장하실 hoo님이 기대됩니다 빠이팅이십니다!!
질문&답변
mac에서 발생하는 문제
오오오오 Anfield 님 안녕하세요!! 다른 수강생분들을 위해 넘넘 친절한 내용 작성해주셔서 감사드립니다!!해당 내용을 교재에도 추가해두도록 하겠습니다!! 호옥시 2주차 몇번째 강 수강하시면서 발생하셨던 문제였는지 여쭤봐도 될까요?_?
질문&답변
수업 질문
안녕하세요 snoapple3 님 좋은 질문 감사합니다! 기업 코딩테스트의 환경은 코랩보다는 pycharm 에 더 가깝습니다! 실행 결과를 개별 행마다 테스트해보지는 못하고 전체 실행의 결과만을 비교할 수 있습니다. 아무래도 코랩 쓰시다가 오셔서 불편함을 느끼신 것 같습니다 ;_;앗 이 부분은 제가 잘못 설명드린 부분 같습니다! 영상 초반부일 것 같은데, 변경해두록 하겠습니다 제보주셔서 감사드리옵니다 __파이참을 이용하면 각 실행부의 디버깅이 수월해서 결정했습니다! 교재에 있는 디버깅 하는 방법 문서를 통해 한 번 디버깅 방법을 익혀보시면, 아마 코랩보다 훨씬 수월하게 코드 실행 방식을 이해하시는데 도움이 가리라 생각합니다 한 번 사용해보시길 권장드립니다!질문 주셔서 감사합니다 즐거운 주말 보내세요!
질문&답변
2-6 LinkedList 합계 자바 풀이
안녕하세요 근희님! 좋은 질문 감사합니다자바로 새롭게 코드를 작성해서 풀어보다니 너무 훌륭합니다!! 파이썬 코드와 비교해보면 개념적으로 동일한 접근법을 사용하신 것 같습니다. 다만 파이썬 코드에서는 get_single_linked_list_sum 함수에서 순회하면서 값을 계산할 때 자릿수를 고려하여 곱하기 10을 하는 방식을 사용했고, 자바 코드에서는 StringBuilder를 활용해 문자열로 만든 후 숫자로 변환하는 방식을 사용하셨습니다. 두 방식 모두 잘 작동하며 각각의 장단점이 있습니다파이썬 코드 방식 (곱하기 10 사용):장점: 숫자를 바로 계산하므로 추가 변환 없음단점: 연결 리스트가 매우 길면 자릿수 계산에 주의해야 함자바 코드 방식 (StringBuilder 사용):장점: 문자열 조작이 직관적이고 코드가 간결함단점: 문자열→숫자 변환 과정이 추가됨 다만, 자바 코드에서 한 가지 주의할 점이 있습니다.while (cur1 != null && cur2 != null) { firstNumber.append(cur1.data); secondNumber.append(cur2.data); cur1 = cur1.next; cur2 = cur2.next; } 이 부분은 두 연결 리스트의 길이가 다른 경우 처리를 못할 수 있습니다. 예를 들어, 한 리스트가 다른 리스트보다 길면 긴 리스트의 나머지 부분이 무시될 수 있습니다. 따라서 다음과 같이 수정하면 더 확장성 있는 코드로 사용될 수 있습니다.while (cur1 != null) { firstNumber.append(cur1.data); cur1 = cur1.next; } while (cur2 != null) { secondNumber.append(cur2.data); cur2 = cur2.next; }이 내용을 제외하면, StringBuilder를 활용한 접근법은 자바스러운 좋은 풀이입니다! 수업의 내용을 이해하고 자바로 새롭게 풀어보는 모습 너무 훌륭하십니다!! 코테 부술때까지 파이팅이십니다!
질문&답변
키보드 질문
ㅋㅋㅋㅋㅋ 안녕하세요 용찬님!!재밌는 질문 감사합니다제 키보드는 요 모델입니다!! (근데 좀 시끄러워서 회사에서는 좀 쓰기 그러실수도 있어용 ㅎ.ㅎ)https://inf.run/UafGh
질문&답변
이 번에 처음으로 알고리즘이라는 걸 공부해보고 있는데
안녕하세요 근희님! 좋은 질문 감사합니다1주차 연습문제를 안보고 풀 수 있는 정도면 상당히 좋은 출발점에 있으신 겁니다!!!! 알고리즘 학습 초기에 그 정도 수준이면 기본 개념을 잘 이해하고 계신 것으로 볼 수 있습니다 알고리즘 학습은 처음에는 누구에게나 어렵습니다. 지금 어렵게 느껴지는 것은 매우 자연스러운 과정이니 너무 걱정하지 마세요. 중요한 것은 꾸준한 복습과 연습입니다. 알고리즘은 반복적인 학습과 다양한 문제 해결 경험을 통해 점차 익숙해지는 분야입니다. 실제 코딩테스트의 난이도는 회사마다, 직무마다 매우 다양합니다 기본적인 자료구조와 알고리즘 개념을 활용한 문제가 출제되는 경우도 있고여러 개념을 복합적으로 적용해야 하는 더 어려운 문제가 나오기도 합니다하지만 대부분의 기업 코딩테스트는 기본기를 얼마나 잘 이해하고 있는지 확인하는 데 중점을 둡니다. 따라서 지금 학습하시는 내용들을 탄탄하게 다지시면 충분히 대비할 수 있을 겁니다! 어렵더라도 포기하지 마시고 계속 도전하세요! 알고리즘 실력은 하루아침에 향상되지 않습니다. 지금 어렵게 느껴지는 것들이 나중에는 당연하게 느껴질 날이 반드시 올 거예요. ㅎㅎㅎ 꼭 합격까지 빠이팅하시길 바라겠습니다!!!
질문&답변
스택 - 탑문제
수빈님 오랜만에 질문 탭에서 뵙는 것 같습니다벌써 겨울이 지나고 봄인데 잘 지내시죠?? 좋은 질문 주셔서 감사합니다!!강의에서 제시되었던 코드는 반복문에서 스택을 사용하도록 변경한 코드라서, 실제로 큰 입력값을 처리하기에는 효율적이지 않습니다!현재 코드의 시간복잡도는 O(n²)으로:각 탑마다 (while heights:)이전의 모든 탑을 순회하며 확인합니다 (for idx in range(len(heights) - 1, -1, -1):)백준과 같은 알고리즘 문제 사이트에서는 보다 효율적인 O(n) 알고리즘이 필요합니다. 아래는 스택을 활용한 개선된 코드입니다def top_stack(N, tops): result = [0] * N stack = [] # (인덱스, 높이) 저장 for i in range(N): # 현재 탑보다 낮은 탑은 스택에서 제거 while stack and stack[-1][1] 이 개선된 알고리즘은각 탑을 한 번씩만 처리합니다스택에는 레이저 신호를 수신할 가능성이 있는 탑의 정보만 유지합니다불필요한 비교를 피해 시간복잡도를 O(n)으로 개선합니다 해당 개선 방식에 대해서 추가적으로 교재에서 다뤄봐도 좋을 것 같습니다!추후에 알고리즘 영상을 보완하는 시점에 해당 문제 풀이 방법에 대해서도 작성해보도록 하겠습니다강의 개선 아이디어 주심에 대한 감사의 의미로 커피 기프티콘을 드리겠습니다 아래 카카오톡 오픈 링크로 연락 부탁드립니다!!https://open.kakao.com/me/ding_coding_co감사합니다
질문&답변
3-8 해쉬 관련 다른 풀이도 궁금해요.
안녕하세요 Tommy 님! 좋은 질문 감사합니다!!맞습니다! HashTable과 Set 자료구조 모두 평균적인 조회 성능은 O(1)입니다. 따라서 제시하신 코드처럼 Set을 사용하여 문제를 해결하는 접근법은 시간복잡도 측면에서 매우 효율적입니다. 두 방식 모두 전체 시간복잡도는 O(n + m)으로 동일합니다. 여기서 n은 all_array의 길이, m은 present_array의 길이입니다.set 방식의 장점은 코드가 더 간결하고 읽기 쉽습니다. 이번 문제에서는 학생의 유니크함을 보장하고 있기 때문에 더 명확하다고 할 수 있을 것 같습니다. 다만, 만약 동명이인이 나타난다면 어떻게 처리를 할지 정도 고려해봐도 좋을 것 같습니다여러가지 고민을 해보시는 습관 너무 좋습니다! 완강까지 빠이팅입니다!