본문 바로가기
+ 펴낸 책

파이썬 알고리즘 인터뷰

by 책만 2020. 7. 6.

 

 

파이썬 알고리즘 인터뷰

95가지 알고리즘 문제 풀이로 완성하는 코딩 테스트

 

박상길 지음 | 정진호 일러스트

 

724쪽 | 38,000원 | 2020년 7월 15일 출간 | 180*235*35 | ISBN 9791189909178

 

판매처 [교보문고] [YES24] [알라딘] [인터파크] + 전국 교보문고 매장

전자책 판매처 [리디북스] [교보문고] [YES24] [알라딘] | ISBN 9791189909215 | PDF 포맷 | 

★ 2021년 세종도서 학술부문 우수도서 선정!

 

★ 정오표: https://www.onlybook.co.kr/entry/algorithm-interview-errata 

★ 이 책의 문제 풀이 코드 다운로드: https://github.com/onlybooks/algorithm-interview

도서 내용에 관한 질문과 답변:  https://github.com/onlybooks/algorithm-interview/issues

★ 이 책에 실린 문제 풀이 도우미 영상: https://bit.ly/algorithm-interview-youtube

 

☆ 학교나 학원에서 저희 도서를 공식 교재로 채택하여 강의를 진행하시는 교수님/강사님께 제공 가능한 이 책의 강의 교안 자료가 준비되어 있습니다. (1) 성함, 연락처 (2) 강의처 (3) 강의 교과목 (4) 간단한 강의계획 (5) 교재 구매 계획 등을 정리하셔서 support@onlybook.co.kr 이메일로 보내주십시오. 내용 검토 후 제공해드리겠습니다.

 

★ 책에 수록된 [참고문헌] 페이지 다운로드: 

#참고문헌.pdf
다운로드

 

 

코딩 테스트와 인터뷰를 준비하는 취준생과 이직자를 위한 

    알고리즘 문제 풀이 완벽 마스터!

 세계 최고 온라인 문제 풀이 사이트인 

    리트코드(LeetCode)의 기출문제 풀이와 분석!

 

파이썬 구현 코드로 배우는 핵심 문법과 다양한 실용 테크닉

200여 개의 일러스트로 쉽게 이해하는 알고리즘과 자료구조

 

 

 

 

마이크로소프트와 구글을 필두로 전 세계 개발자 채용의 첫 관문이 된 코딩 인터뷰! 

주요 기업에서 실시하는 코딩 테스트의 기출 문제를 분석하고 상세한 문제 풀이와 해설을 통해 취업과 이직에 한발짝 다가서자. 

이 책은 현업과 실무에 유용한 주요 알고리즘 이론을 깊숙이 이해하고, 파이썬의 핵심 기능과 문법까지 상세하게 이해할 수 있는 취업용 코딩 테스트를 위한 완벽 가이드다. 이 책을 다 읽고 나면, “왜 알고리즘을 공부하는가?”라는 질문에 대한 해답을 얻을 것이다.

 

 

 

 

 

 

 

 

 

여는 글

“개발자에게 알고리즘 공부가 필요한가?”라는 질문은 익명 커뮤니티의 단골 토론 주제다. 누구는 현업에서 그리 필요하지는 않다고 말하고 누구는 기본기(基本技)로서 소양을 갖춰야 한다고 말한다. 다만 누구도 부인할 수 없는 점은 소위 FAANG(페이스북, 아마존, 애플, 넷플릭스, 구글)과 네카라(네이버, 카카오, 라인)에 개발자로 입사하고 싶다면, 알고리즘 인터뷰는 선택이 아닌 필수라는 사실이다. 여러분이 주니어라면 더더욱 그렇다.

국내에 개발자 코딩 테스트가 처음 도입된 시기는 대략 2005년 무렵이다. 저자와 함께 다음커뮤니케이션에 재직하던 당시, 마이크로소프트와 야후! 등의 개발자 인터뷰 모델을 기반으로 알고리즘을 이용한 문제 해결 능력을 측정하는 코딩 테스트를 시작했다. 대규모 사용자 트래픽을 처리하는 인터넷 포털의 입장에서 전혀 예상하지 못했던 문제를 늘 맞닥뜨리게 되는데, 이를 해결하기 위해서는 기본적인 알고리즘 능력이 필수였기 때문이다.

『파이썬 알고리즘 인터뷰』는 알고리즘을 이용한 문제 해결 능력을 키우는 탄탄한 기본기를 더하는 데 전혀 부족함이 없다. 물론 이 책에 나온 알고리즘 예제들이 입사 시 치르는 모든 코딩 테스트에 완벽하게 대비해주지는 못할 수도 있다. 하지만 분명히 주니어 개발자에게는 학교에서 배운 개념을 실제 문제로 대입하는 능력을 키워주고, 시니어 개발자에게는 그동안 잊고 있던 알고리즘을 다시 복습하면서 필요하다면 좀 더 나은 경력과 이직을 위한 출발점이 되어줄 것이다. 만약 입사 시 코딩 테스트를 안 하는 회사가 있다면 ‘프로그래머 채용 인터뷰 때 코딩 테스트를 합니까?’라는 조엘 테스트 11번 항목을 위반하는 회사니 걸러도 된다.

저자는 과거 유명 블로거로서 많은 기술 정보를 공유하면서도 현업 개발자로서 다양한 경험을 겸비하고 있다. 700페이지에 달하는 분량의 꼼꼼한 설명과 문제 풀이가 이를 보여준다. 필요에 따라 알고리즘을 써야 할 때 예제로서 활용하기도 좋고, 2-3년에 한 번씩 슬럼프가 찾아올 때 이직 인터뷰를 준비하면서 마음을 다잡는 계기로 삼을 수 있기에 여러분의 책장 한편에 두시라 추천하는 데 전혀 손색이 없다.

윤석찬 / 아마존 웹 서비스(AWS) 수석 테크 에반젤리스트

추천의 글

지금 당장 취업이나 이직을 생각하지 않더라도 미리 읽어보고 참고해볼 만한, 개발자들을 위한 책이 나왔습니다. 구직, 이직은 개발자들 모두에게 중요한 일인데 의외로 이에 관한 책은 많지 않았습니다. 이 책에서는 저자의 오랜 사회생활 경험에 기반해 취업과 이직이 어떻게 이뤄지는지, 개발자들이 어떤 점을 알아 둬야 하고 또 유의해야 하는지 등을 특히 실제 사례들에 비춰 잘 이야기해줍니다. 그중에서도 가장 큰 부분을 차지하는 코딩 테스트에 관한 자세한 내용을 매우 보기 쉽고 짜임새 있으며 정성스럽게 담아냈습니다. 주요 자료구조나 알고리즘 그 자체를 공부하고 실습해보기 위한 자료로서도 매우 유용합니다.

권순선 / 구글 글로벌 ML 에코 시스템 프로그램 리드, KLDP 창시자

『파이썬 알고리즘 인터뷰』는 상당히 보기 드문 종합 코딩 인터뷰 준비 서적입니다. 먼저, 기초 컴퓨터과학 지식에 대한 간결하지만 깊이 있는 설명, 그리고 파이썬에 대한 수준 높은 정보가 담겨 있습니다. 이 책에서 다루는 문제는 실제 인터뷰에서 출제되는 인기 문제입니다. 가장 돋보이는 것은 현업에 계신 저자가 손수 작성하신 프로 수준의 풀이입니다. 번역서가 아니라 직접 집필한 국내서라는 점, 눈에 쏙 들어오는 멋진 그림은 이 책의 가치를 더욱 높여줍니다. 면접관 입장에서도 정말 재미있게 읽고, 큰 공부가 된 책이었습니다.

김민장 / 페이스북 본사 소프트웨어 엔지니어

요즘 실리콘밸리에서는, 리트코드 문제를 300개 정도는 풀어야 최고 수준 회사들의 면접을 통과할 수 있다는 말이 심심찮게 나온다. 그만큼 알고리즘 문제 풀이는 대부분의 IT 회사에서 여전히 중요한 입사 전형 중 하나다. 이 책을 리뷰하며, 개발자로 이직을 준비 중인 멘티에게 가장 먼저 추천하고 싶다는 생각이 들었다. 문제 풀이뿐만 아니라, 파이썬의 동작 원리를 이해하고 친절히 설명하는 저자의 끈기와 집요함이 한 단계 더 높은 수준의 학습을 가능하게 한다.

민창현 / 아마존 본사 소프트웨어 엔지니어

이 책에서는 알고리즘 영역마다 좋은 문제를 선별해 설명하고, 여러 가지 접근 방법을 이용한 깔끔한 코드를 제시한다. 여기에 그치지 않고 파이썬 라이브러리와 코딩 시 유의할 점 등을 다루는 부분도 크게 도움이 된다. 코딩 인터뷰를 준비하는 분들께, 저자의 경험이 녹아 있는 좋은 교재로 추천 드린다.

서민구 / 구글 테크 리드 매니저

일찍이 정규 교육이 기업에서 원하는 인재를 배출하는 데 실패했다고 판단한 IT 기업들은 직접 개발자의 역량을 평가할 방법을 모색 중이며, 코딩 인터뷰는 이런 노력의 중심에 있다. 코딩 인터뷰는 유용하지만, 나는 폭넓고 복잡한 개발자 역량을 알고리즘 위주의 코딩 능력만으로 평가하는 것에 완전히 동의하진 않는다. 그럼에도 이 책을 강력히 추천하지 않을 수 없다. 정성들여 만들어진 이 책은 단순한 문제 나열이 아닌 코딩 인터뷰를 둘러싼 다양한 주제를 섬세하게 다루며, 저자의 깊은 고민도 느껴진다. 또, 흥미로운 내용으로 가득하고 심지어 재미있다. 국내서로 이런 좋은 책이 나왔다니 참 감사한 일이다. 코딩 인터뷰를 준비하는 개발자나 채용 담당자는 물론, 문제 해결력을 키우려는 개발자에게 유용하며, 코딩을 취미로 삼은 모든 코딩 덕후에게 즐거움을 줄 책이다.

박성철 / 우아한형제들 딜리버리프로덕트실 실장

IT 분야에서 알고리즘이란 어떤 문제를 해결하기 위해 데이터 구조를 만들고 이를 CPU/메모리/디스크 같은 자원을 활용해 계산해내는 것이다. 코딩 인터뷰는 지원자가 정해진 시간 내에 이런 알고리즘들을 작성하는지를 보면서, 회사에 적합한지를 가늠해보는 여러 방법 중 하나다. 과하지만 않다면, 많은 면을 단기간에 볼 수 있는 좋은 방법이다. 이 책은 파이썬으로 알고리즘을 구현하는 방법을 차근차근 깊이있게 설명한다. 선도 IT 기업에서 코딩 테스트를 직접 만들고 진행한 저자의 경험과 지식을 바탕으로 핵심 내용을 잘 짚어주므로, IT 기업을 희망하는 분들께 많은 도움이 될 것이다. 비단 지원자뿐만 아니라 컴퓨터를 활용해 문제를 해결하고 싶은 모든 분께 이 책을 추천한다.

공용준 / 카카오 클라우드기술팀 팀장

이 책은 단순히 알고리즘 풀이에서 그치는 것이 아니라, 파이썬이라는 언어의 특징을 살려서 좀 더 효과적으로 문제를 풀 수 있는 방법, 실전 인터뷰 상황에서 유익한 노하우, 그리고 깊이 파고들지 않는 이상 알기 어려운 내용까지도 꼼꼼하게 다룬다. 엄선된 알고리즘 문제들을 푸는 과정 중에, 그간 이해하기 어려웠거나 헷갈리던 부분이 마치 가려운 부분을 긁어주는 것처럼 그림과 함께 자세히 설명되어 있어 좋았다. 앞으로 코딩 인터뷰를 준비하는 많은 이에게 도움을 줄 수 있을 것으로 기대된다.

김민혜 / 페이스북 싱가포르 파트너 엔지니어

국내 유수 기업들에서 코딩 인터뷰 면접관이자 출제위원으로 활동해온 저자의 경험이 녹아 있는 책입니다. 파이썬으로 설명하지만, 파이썬을 처음 경험하는 사람이라도 충분히 학습할 수 있도록 잘 구성되어 있습니다. 알고리즘 이론을 너무 가볍지도, 또 너무 과하지도 않게 실전 코딩 인터뷰에 딱 필요한 만큼 서술하고 문제풀이도 매우 친절하여, 알고리즘과 친하지 않은 사람도 부담없이 읽을 수 있습니다. 이처럼 알고리즘 내용도 훌륭하지만, 코딩 인터뷰를 준비하며 놓치기 쉬운 중요한 팁들까지 잘 정리되어 있어, IT 기업 입사를 준비하는 학생이나 이직을 준비하는 개발자분들에게 적극적으로 추천해주고 싶습니다.

나동희 / CPython 공식 커미터, 카카오 소프트웨어 엔지니어

화이트보드 앞에 선 나 자신을 상상하면 늘 입이 마른다. 이 책은 기본을 강조하면서도 알고리즘 테스트나 인터뷰를 준비하는 사람들이 궁금해 할 몹시 사소한 부분까지 잊지 않고 세심하게 챙겨준다. (저자와 느슨하지만 꽤 오래 안 사이 같은데, 이렇게 친절한 분인지 미처 몰랐다!) 리트코드 문제를 풀라고 하니 풀긴 하는데 딱히 나아지는 것 같지 않고, 인터뷰 때마다 긴장하고 준비가 부족했다고 느껴본 사람들에게 이 책을 추천하고 싶다. 누구든 시험이 끼지 않는 공부는 어지간하면 재미있기 마련이니, 다들 취직/이직에 필요하다 스트레스 받지 않고 이 책과 함께 즐겁게 공부할 수 있다면 좋겠다.

한성은, 조지아텍(Georgia Tech) 컴퓨터 사이언스 석사과정 

이 책의 구성

1부, 코딩 인터뷰

1장, ‘코딩 인터뷰’에서는 코딩 테스트에 대한 소개와 어떻게 하면 시험을 잘 치를 수 있을지, 문제 풀이 외에도 타임아웃이나 예외 처리는 어떻게 처리해야 하는지 문제를 잘 풀이하고 점수를 높이기 위한 여러 가지 팁을 담았다. 2장, ‘프로그래밍 언어 선택’은 각 언어별 특징을 살펴보고 어떤 언어가 코딩 테스트에 가장 적합한 언어인지를 살펴본다. 

 

2부, 파이썬

3장, ‘파이썬’에서 우리는 코딩 테스트를 위한 언어로 파이썬을 택하고 이 언어에 대한 상세한 특징을 살펴본다. 4장, ‘빅오, 자료형’에서는 빅오에 대한 정의와 잘못된 오해에 대해 간단히 짚어보고 파이썬 자료형의 특징에 대해서 다시 한번 자세히 살펴본다. 우리가 선택한 파이썬을 제대로 활용하려면 언어의 특징에 대해서도 상세히 파악해둬야 한다. 5장, ‘리스트, 딕셔너리’에서는 파이썬의 대표적인 자료형이자 앞으로 코딩 테스트에서 계속해서 사용하게 될 대표적인 2가지 자료형, 리스트(List), 딕셔너리(Dictionary)에 대해 깊이 있게 살펴본다. 6장, ‘문자열 조작’에서는 문자열과 관련한 주제를 살펴보며 이 장부터 본격적으로 다양한 문제 풀이를 진행해본다. 

 

3부, 선형 자료구조

7장, ‘배열’부터 11장, ‘해시 테이블’까지는 선형Linear 자료구조와 관련한 다양한 주제를 살펴보고, 코딩 인터뷰 대비 문제를 풀이해본다. 

 

4부, 비선형 자료구조

12장, ‘그래프’부터 16장, ‘트라이’까지는 비선형Non-Linear 자료구조와 관련한 주제를 살펴보고, 코딩 인터뷰 대비 문제를 풀이해본다.

 

5부, 알고리즘

17장, ‘정렬’은 알고리즘의 꽃이라 불리우는 정렬의 다양한 알고리즘을 순서대로 하나씩 살펴본다. 특히, 21장, ‘그리디 알고리즘’, 22장, ‘분할 정복’, 23장, ‘다이나믹 프로그래밍’은 각각 독립된 장이면서도 서로 연관되어 있는 주제이므로, 23장에서 내용을 최종 정리해 각각의 특징과 차이점을 상세히 살펴본다.

 

부록

부록 A, ‘회사 및 이직 가이드’에서는 취업이나 이직할 회사를 어떻게 택하고, 어떻게 구직과 이직 과정을 진행해야 하는지, 면접자에게 도움이 되는 정보를 실용적인 관점에서 자세히 살펴본다. 부록 B, ‘카카오 공채 문제 풀이’에서는 지금까지 살펴본 모든 알고리즘 역량을 총동원하여 실제로 2017년 카카오 개발자 신입 공채에 출제되었던 문제들을 최선의 방법으로 모두 풀이해본다.

 

이 책의 주요 특징

  • 실무 개발과 코딩 테스트 모두를 위한 핵심 파이썬 문법과 프로그래밍 기법
  • 개발자라면 꼭 알아야 할 필수 알고리즘과 자료구조 이론의 정의와 배경
  • 알고리즘 이론을 한눈에 이해할 수 있는 215가지 일러스트 시각화
  • 세계 최고 문제 풀이 사이트 리트코드(LeetCode)의 주요 기출문제 풀이
  • 실제 카카오 공채 코딩 테스트에 출제된 문제 풀이와 해설
  • 다양한 최적화 기법을 활용한 단계별 풀이 개선과 비교 분석
  • 알고리즘 구현별 성능과 풀이 실행 속도 비교
  • 서류전형에서 면접까지, 개발직군 취업과 이직을 위한 준비 가이드
  • 성공적인 개발자 커리어패스 구축을 위한 다양한 조언

이 책의 독자 대상

이 책은 다음과 같은 고민으로 학습 자료나 참고서를 찾고 있는 ‘국내 최고 수준의 IT 기업에 취업 및 이직을 희망하는 개발자’와 이제 첫 사회생활을 시작하는 취업준비생, 대학생이 읽어야 할 필독서다. 

  • 어떻게 하면 코딩 테스트를 잘 치를 수 있을까?
  • 어떻게 하면 알고리즘 문제를 잘 풀이할 수 있을까?
  • 어떻게 하면 면접을 잘 볼 수 있을까?
  • 어떻게 하면 파이썬을 잘 다룰 수 있을까?

이 책을 읽는 독자는 하나 이상의 언어로 프로그래밍해본 경험이 있어야 하며, 기본적인 자료구조와 알고리즘에 대해 공부할 준비가 되어 있어야 한다. 파이썬을 몰라도 이 책을 볼 수는 있지만, 가능하면 파이썬에 대한 기본 지식을 갖춘 상태에서 책을 읽는 편이 내용을 이해하는 데 훨씬 더 도움이 될 것이다.

 

지은이 박상길

카카오 검색팀과 자연어처리팀을 거쳐 현재 현대자동차 AI 리서치 랩에서 차량에 탑재되는 AI 플랫폼을 만든다. 카카오 채용 코딩 테스트 출제 위원회 소속으로 오랜 기간 개발자 채용에 관여해 왔으며, 현대자동차에서도 AI 플랫폼 팀장으로서 다양한 면접에 참여하고 있다. 현대차그룹(현대차, 기아차, 모비스, 오토에버 등)의 소프트웨어 전문가 채용을 담당하는 TFT에도 소속되어 있다.

2017년, 국내 IT 업계 처음으로 블라인드 채용을 시행한 카카오 신입 개발자 공채의 문제 출제 위원으로 활동했으며, 오프라인 필기 시험의 문제 대부분을 출제하기도 했다. 프로필 사진은 카카오 개발자 공채 최종 오프라인 시험 당시 코엑스에 감독관으로 나갔을 때, 현장에서 촬영한 사진이다.

2017년 8월, 카카오는 흥미로운 실험을 진행했다. 신입 개발자 채용을 이름과 연락처만 제시하면 누구나 지원할 수 있는 블라인드 방식의 공개 채용으로 진행한 것이다. 과감한 시도였고 당시 IT 업계에서조차 보기 드문 사례였다.

좋은 개발자를 선발하기 위한 출제 위원회의 움직임도 바빠졌다. 주요 알고리즘을 녹여 내면서도 응시자들에게 친근하게 다가서기 위해 카카오 캐릭터를 이용한 수십 항목의 문제를 만들었고, 출제 위원들이 각자 돌아가며 꼼꼼히 문제를 풀이해 나갔다. 피어 리뷰를 통해 충분히 논의를 진행했고, 다수결로 출제 여부를 확정했다. 지루한 절차가 반복됐지만 꼭 필요하고도 합리적인 과정이었다. 그렇게 여러 단계를 거쳐 최종적으로 총 7개 문제를 엄선했고, 이 문제들은 지금까지도 좋은 평가를 받으며 블라인드 채용의 모범 사례가 되었다(그해 카카오 공채 문제들은 이 책의 부록 B에서 모두 풀어본다). 당시의 성공 덕분에 이후에도 블라인드 채용은 계속 이어지고 있으며 다른 기업의 채용에까지 영향을 미쳤으니, 돌이켜 보면 그 자랑스러운 역사의 현장에 일원으로서 함께할 수 있었다는 사실이 그저 영광스러울 따름이다.

이 책에는 그렇게 당시 코딩 테스트를 진행했던 경험, 이후에도 수많은 면접자들을 대상으로 기술 인터뷰를 수행한 경험, 그리고 면접을 더 잘하기 위해 수많은 회사의 기술 면접 과정을 면밀히 살펴본 경험을 담았다. 그리고 이를 바탕으로, 나 또한 이직을 시도하면서 겪은 여러 가지 다양한 경험까지도 녹여내어 종합했다.

면접관으로서, 또는 면접자로서 겪은 다양한 경험은 한동안 면접관의 입장에서는 미처 느끼지 못했던 잘못된 관행들을 다시금 면접자의 입장에서 깨닫게 되는 좋은 계기가 됐고, 이직 후에는 더 좋은 면접관으로 거듭나게 됐으며, 이 책을 통해 그간의 경험들을 모두 잘 정리해 담아냈음은 물론이다.

간혹 알고리즘 면접이라는 것이 갓 졸업한 학부생들이나 풀 수 있는 형식적인 면접이 아니냐는 오해도 있다. 과연 그럴까? 여러분은 왜 알고리즘 문제를 푼다고 생각하는가? 왜 그동안 수학을 공부해왔다고 생각하는가? 우리가 수학과 알고리즘을 공부하는 이유는 튼튼한 기본(수학)을 바탕으로 논리적 사고(수학적 사고)를 거쳐 문제 해결(프로그래밍)을 하기 위해서다. 알고리즘 속에 깃든 다양한 사고의 방법, 자료구조, 문제 풀이 역량 등은 체계적으로 생각하는 방법을 길러주며 나아가 훌륭한 개발자로서 당연히 갖춰야 할 튼튼한 지적 기반을 쌓아준다. 알고리즘을 체계적으로 익혀 실력을 키운다면 좀 더 좋은 개발자가 될 수 있을 것이다. 

이제부터 여러분이 할 일은 리트코드와 함께 이 책에 있는 문제들을 파이썬으로 열심히 풀이해 보는 것이다. 화이트보드에 풀어보는 것도 좋은 방법이다. 무엇보다 이 책이 여러분의 취업에, 여러분의 이직에, 여러분의 커리어에, 여러분의 인생에 좋은 길잡이가 되었으면 한다.

일러스트 정진호

한때는 글로벌 인터넷 기업에서 외부 개발자를 지원하는 엔지니어였다.  대기업 계열사의 기업문화팀에서 일했고, 현재는 1인 기업 J비주얼스쿨의 대표가 되었다. 독학으로 그림을 그려 7번의 수채화 개인전을 열고, 16권의 저서와 역서를 출간했다. 평범한 것들이 모이면 특별한 것이 된다는 믿음을 가지고 매일 꾸준하게 무언가를 하고 있다.

 

 

차례

1부  코딩 인터뷰

1장  코딩 인터뷰

코딩 인터뷰를 위한 온라인 테스트 플랫폼

국내 기업의 코딩 테스트 플랫폼 활용 현황

온라인 코딩 테스트의 사전 준비사항

화이트보드 코딩 인터뷰

 

2장  프로그래밍 언어 선택

경진대회 통계로 알아본 언어 선호도

프로그래밍 언어별 특징

__루프

__제네릭 프로그래밍

__배열 반복

__구조체

__클래스

코딩 테스트에 최적인 프로그래밍 언어는?

 

2부  파이썬

3장  파이썬

파이썬에 대한 이해

파이썬 문법

__인덴트

__네이밍 컨벤션

__타입 힌트

__리스트 컴프리헨션

__제너레이터

__range

__enumerate

__// 나눗셈 연산자

__print

__pass

__locals

코딩 스타일

__변수명과 주석

__리스트 컴프리헨션

__구글 파이썬 스타일 가이드

 

4장  빅오, 자료형

빅오

__상한과 최악

__분할 상환 분석

__병렬화

자료형

__파이썬 자료형

__원시 타입

__객체

 

5장  리스트, 딕셔너리

리스트

__리스트의 활용 방법

__리스트의 특징

딕셔너리

__딕셔너리의 활용 방법

__딕셔너리 모듈

 

6장  문자열 조작

[문제]_01  유효한 팰린드롬

[문제]_02  문자열 뒤집기

[문제]_03  로그 파일 재정렬

[문제]_04  가장 흔한 단어

[문제]_05  그룹 애너그램

여러 가지 정렬 방법

[문제]_06  가장 긴 팰린드롬 부분 문자열

유니코드와 UTF-8

 

3부  선형 자료구조

7장  배열

[문제]_07  두 수의 합

[문제]_08  빗물 트래핑

[문제]_09  세 수의 합

[문제]_10  배열 파티션 I 

[문제]_11  자신을 제외한 배열의 곱

[문제]_12  주식을 사고팔기 가장 좋은 시점

 

8장  연결 리스트

[문제]_13  팰린드롬 연결 리스트

[문제]_14  두 정렬 리스트의 병합

[문제]_15  역순 연결 리스트

[문제]_16  두 수의 덧셈

[문제]_17  페어의 노드 스왑 

[문제]_18  홀짝 연결 리스트

[문제]_19  역순 연결 리스트 II

 

9장  스택, 큐

스택

__연결 리스트를 이용한 스택 ADT 구현

[문제]_20  유효한 괄호

[문제]_21  중복 문자 제거

[문제]_22  일일 온도

[문제]_23  큐를 이용한 스택 구현

[문제]_24  스택을 이용한 큐 구현

[문제]_25  원형 큐 디자인

 

10장  데크, 우선순위 큐

데크

[문제]_26  원형 데크 디자인

우선순위 큐

[문제]_27  k개 정렬 리스트 병합

 

11장  해시 테이블

해시

__생일 문제

__비둘기집 원리

__로드 팩터

__해시 함수

충돌

__개별 체이닝

__오픈 어드레싱

__언어별 해시 테이블 구현 방식

[문제]_28  해시맵 디자인

[문제]_29  보석과 돌

[문제]_30  중복 문자 없는 가장 긴 부분 문자열

[문제]_31  상위 K 빈도 요소

 

4부  비선형 자료구조

12장  그래프

오일러 경로

해밀턴 경로

그래프 순회

__DFS(깊이 우선 탐색)

__BFS(너비 우선 탐색)

백트래킹

제약 충족 문제

[문제]_32  섬의 개수

[문제]_33  전화 번호 문자 조합

[문제]_34  순열

[문제]_35  조합

[문제]_36  조합의 합

[문제]_37  부분 집합

[문제]_38  일정 재구성

[문제]_39  코스 스케줄

 

13장  최단 경로 문제

[문제]_40  네트워크 딜레이 타임

[문제]_41  K 경유지 내 가장 저렴한 항공권

 

14장  트리

트리의 각 명칭

그래프 vs 트리

이진 트리

[문제]_42  이진 트리의 최대 깊이

[문제]_43  이진 트리의 직경

[문제]_44  가장 긴 동일 값의 경로

[문제]_45  이진 트리 반전

[문제]_46  두 이진 트리 병합

[문제]_47  이진 트리 직렬화 & 역직렬화

[문제]_48  균형 이진 트리

[문제]_49  최소 높이 트리

이진 탐색 트리(BST)

__자가 균형 이진 탐색 트리

[문제]_50  정렬된 배열의 이진 탐색 트리 변환

[문제]_51  이진 탐색 트리(BST)를 더 큰 수 합계 트리로

[문제]_52  이진 탐색 트리(BST) 합의 범위

[문제]_53  이진 탐색 트리(BST) 노드 간 최소 거리

트리 순회

[문제]_54  전위, 중위 순회 결과로 이진 트리 구축

 

15장  힙

힙 연산

__삽입

__추출

[문제]_55  배열의 K번째 큰 요소

 

16장  트라이

[문제]_56  트라이 구현

[문제]_57  팰린드롬 페어

 

5부  알고리즘

17장  정렬

버블 정렬

병합 정렬

퀵 정렬

안정 정렬 vs 불안정 정렬

[문제]_58  리스트 정렬

[문제]_59  구간 병합

[문제]_60  삽입 정렬 리스트

[문제]_61  가장 큰 수

[문제]_62  유효한 애너그램

[문제]_63  색 정렬

[문제]_64  원점에 K번째로 가까운 점

 

18장  이진 검색

[문제]_65  이진 검색

[문제]_66  회전 정렬된 배열 검색

[문제]_67  두 배열의 교집합

[문제]_68  두 수의 합 II

[문제]_69  2D 매트릭스 검색 II

 

19장  비트 조작

부울 연산자

비트 연산자

비트 조작 퀴즈

__자릿수 제한 비트 연산

2의 보수

__2의 보수 숫자 포맷

__2의 보수 수학 연산

__비트 연산자 NOT

[문제]_70  싱글 넘버

[문제]_71  해밍 거리

[문제]_72  두 정수의 합

[문제]_73  UTF-8 검증

[문제]_74  1비트의 개수

 

20장  슬라이딩 윈도우

[문제]_75  최대 슬라이딩 윈도우

[문제]_76  부분 문자열이 포함된 최소 윈도우

[문제]_77  가장 긴 반복 문자 대체

 

21장 그리디 알고리즘

배낭 문제

동전 바꾸기 문제

가장 큰 합

[문제]_78  주식을 사고 팔기 가장 좋은 시점 II

[문제]_79  키에 따른 대기열 재구성

[문제]_80  태스크 스케줄러

[문제]_81  주유소

[문제]_82  쿠키 부여

 

22장  분할 정복

[문제]_83  과반수 엘리먼트

[문제]_84  괄호를 삽입하는 여러 가지 방법

 

23장 다이나믹 프로그래밍

최적 부분 구조

중복된 하위 문제들

다이나믹 프로그래밍 방법론

[문제]_85  피보나치 수

0-1 배낭 문제

[문제]_86  최대 서브 배열

[문제]_87  계단 오르기

[문제]_88  집 도둑

 

부록A 회사 및 이직 가이드

회사 가이드

취업 준비

이직 준비

이직 가이드

 

부록B  카카오 공채 문제 풀이

[문제]_B1  비밀 지도

[문제]_B2  다트 게임

[문제]_B3  캐시

[문제]_B4  셔틀버스

[문제]_B5  뉴스 클러스터링

[문제]_B6  프렌즈4블록

[문제]_B7  추석 트래픽

 

'+ 펴낸 책' 카테고리의 다른 글

구글 빅쿼리 완벽 가이드  (0) 2020.11.18
UX/UI의 10가지 심리학 법칙  (0) 2020.09.07
엔터프라이즈 데이터 플랫폼 구축  (0) 2020.06.18
코틀린 쿡북  (0) 2020.06.04
쿠버네티스 패턴  (0) 2020.04.02

댓글