품목정보
발행일 | 2020년 07월 15일 |
---|---|
쪽수, 무게, 크기 | 724쪽 | 1300g | 180*235*35mm |
ISBN13 | 9791189909178 |
ISBN10 | 1189909170 |
발행일 | 2020년 07월 15일 |
---|---|
쪽수, 무게, 크기 | 724쪽 | 1300g | 180*235*35mm |
ISBN13 | 9791189909178 |
ISBN10 | 1189909170 |
ETS 토익 정기시험 기출문제집 1000 Vol.3 READING 리딩
16,020원 (10%)
ETS 토익 정기시험 기출문제집 1000 Vol.3 LISTENING 리스닝
16,020원 (10%)
2023 큰별쌤 최태성의 별별한국사 한국사능력검정시험 심화(1,2,3급) 상
13,950원 (10%)
2023 큰별쌤 최태성의 별별한국사 한국사능력검정시험 심화(1,2,3급) 하
13,500원 (10%)
[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 추석 트래픽 |
LeetCode라는 알고리즘 문제 사이트의 문제들을 엄선 했는지 모르겠지만 그랬다고 하니 그런가보다 함 하여 다양한 풀이법과 함께 기초적인 파이썬 문법을 넘어선 알고리즘에 더 특화된 물론 현업에서도 충분히 강력하게 사용할 수 있는 기법을 소개합니다.
카카오 시험을 본 적이 없어서 코딩 시험이 얼마나 대단했는지 모르겠지만 저자가 그랬다고 하니 그런가보다 합니다. 저자 자부심 쩔어요. 자부심이 있는 것은 좋은 겁니다.
종류 별로 구분하여 문제를 모은 것은 좋습니다.
특정 분야에 대하여 집중적으로 풀어보고 익힐 수 있으니까요.
난이도가 왔다갔다 하는 것은 다소 이해가 되지 않지만, 타임아웃이 걸릴 지언정 쉬운 방법으로 풀어보고 좀 더 파이썬답다거나 시간효율적인 방법으로 푸는 방법을 뒤에 제공하는 것은 신선한 방법입니다. 마치 네가 푸는 그 허접한 방법으로는 코딩 시험을 통과할 수 없다. 이 정도는 해줘야지. 하는 듯 우러러보거라- 내가 눈과 머리를 트이게 해주마- 와 같아서 몹시 잔망스럽습니다.
아는 분은 아시겠지만 모르는 분은 모르는 GO 언어로 푸는 코드를 보여주며 비교를 해줍니다.
오, GO라는 언어는 이렇구나... 그래서 뭐 어쩌라는거임? 하고 읽고 넘어갑니다.
읽는 분 중에서 어쩌면 오히려 혼란스러운 분들이 계실지도 모르겠스니다. GO가 이렇게 강력합니다.. 라고 하면 팔랑귀는 '어? 그래? 그럼 파이썬 말고 GO로 할까?' 할 지도 모르거든요.
분야 별 문제를 모아 풀이를 해주다보니, 이리저리 설명이 분산될 수 밖에 없습니다.
지난 6장에서 설명했듯이... 열심히 공부하신 분들이라면 6장에서 그거? 응응응 하고 넘어갈겁니다.
20장에서 설명하겠지만... 그럼 지금 그걸 왜 말해요. 지금 설명해줘요... 의 상황이 심심치않게 발생합니다. 침착하게 나중에 다 설명할테니 지금은 코드 보고 어떻게 동작하는지 알아두기만 하면 됩니다. 어차피 책 다 보면 다 알게 되는 것 아니겠습니까? 지극히 다 알고 있는 저자의 기준에서 구성된 것이니 모르는 것이 억울하면 참고 끝까지 책을 다 보세요.
설명이 '기승...안알랴줌...짠! 결!' 입니다.
어떤 기법으로 어떻게 접근하겠다고 시작합니다. 좋습니다.
이러이러한 구성과 흐름으로 문제를 해결해야겠지요? 라고 물으며 친절하게 진행합니다. 오오- 눈과 귀에 쏙쏙 박힙니다.
그래서 이런 식의 코드를 사용하는 것이 좋을 것 같다며 몇 줄의 핵심 이라고 저자가 생각하는 코드를보여줍니다.
아 그럼 이 샘플 코드를 이용해서 빌드업을 하는 것은... 왜 그런지 안알랴줌,
그냥 전체 샘플 코드를 빨리 보여주며 이거 보고 생각해봐- 로 끝납니다.
공부하는 사람에게 더 공부하라는 저자의 독려라고 생각하렵니다.
그림이 주는 장점은 글로 이해하기 힘든 것을 시각적으로 풀이해주면 더 빠르고 쉽게 이해할 수 있다는 것입니다.
여느 IT 서적들과 다르게 그림이 고기 잔뜩 든 국밥처럼 넉넉합니다.
다만 가끔 '몬말인지 알쥐?' 라며 그림을 그렸는데 '몬말인지 더 모르게쒀'로 혼란을 주기도 합니다.
이런 것들은 몇 개의 그림을 더 추가해서 순차적인 설명을 해줬으면 더 좋았을텐데 하는 아쉬움이 있습니다.
각 문제마다 실행시간의 표가 실려있습니다. 여러분이 개인 PC에서 같은 코드를 실행했을 때, 비슷한 시간이 나오지 않을 수 있습니다. LeetCode에서 돌려보면 얼추 비슷하게 나오기도 합니다. 그냥 이렇게 빠르다, 느리다로 받아들이세요. 이거 다르다고 왜 다르지... 고민하지 않으셔도 됩니다.
부록의 취업, 이직, 시험 가이드는 온라인에 떠도는 많은 이직과 취업 가이드와 큰 차이가 없습니다. 저자님 미안합니다.
실제 언급된 기업에서 10년 넘게 일하면서 인터뷰에 참여해본 바, 같기도 하고 다르기도 하니 그냥 그런가보다 하세요. 이는 그룹, 사업부, 팀마다 다른 스타일이기 때문입니다. 취업가이드에 연봉 체계같은 걸 설명할 이유가 없습니다. 어차피 돈 많이 준다더라, 그 회사 좋다더라 라는 이야기를 귀에 못이 박히도록 듣고 지원했을 것이고, 합격하면 HR이 다 설명해주는 내용입니다.
부록B 의 카카오 시험 문제로 난 확신을 가지게 되었습니다. 자부심이 대단하신 분이구나.
카카오에 시험 볼 정도면 카카오 캐릭터들을 잘 알테니 문제를 읽으며 위화감이 없을 겁니다. 저는 카카오 서비스를 안썼더니만 읽다가 '얘는 뭐여- 이거 한국 회사에서 제임스님이 마이클님과 클라라님께 미팅 리퀘스트를 보냈는데 억셉트 리스폰스가 아직 안왔어요' 같은 느낌으로 읽혀서 어색했어요.
하지만 문제는 무척 잘 만들어진 것 같았습니다. 캐릭터 이름 들어간 부분은 몬말인지 모르겠더라고요.
그리고 해설에 쉬운 문제다 등등 은근슬쩍 평가를 끼워넣으며 가치를 높이는 자화자찬까지는 아닙니다 자기포장을 잘 했습니다. 충분히 그래도 되는 문제들이었습니다.
이야기가 옆으로 많이 빠져서 다시 돌아와야겠습니다.
[이런 분들께 이 책을 추천합니다]
1. 파이썬으로 알고리즘 공부를 하고 싶다.
2. 기왕 알고리즘 문제 푸는거 알고리즘 문제 사이트 것을 풀어서 기록도 남겨보고 싶다. LeetCode?
3. 이직과 취업을 위해 다들 만만하다고 하는 파이썬으로 뚫어보자 결코 만만하지 않다는 것을 알게 될겁니다
4. 문제를 어떻게든 해결하는 것이 아니라 잘 해결하는 방법을 배우고 익히고 싶다.
[이런 분들게 이 책을 멀리하라고 말합니다]
1. 난 이직과 취업 생각이 없다.
2. 나 알고리즘으로 석사까지 했다.
3. 파이썬? 그게 언어냐?
4. 파이썬이 뭐예요?
4. 다 아는 문제구만...
진자 이 책을 보실 분들이라면 기본적인 자료 구조나 자료형, 검색, 정렬에 대한 것은 아시리라 생각합니다. 만약 이걸 모르신다면 이 책은 찜해놓으시고 기초부터 공부하신 후에 책을 구매하셔서 시작하세요. 설명이 '몬말인쥐모루게쒀'가 되면 책이 재미가 없어져요.
예스24는 배송이 무척 빠르고 정확하기 때문에 주문해놓고 공부해야지... 하면 책이 방구석 어딘가로 사라지거나 라면 냄비 받침대가 되어버릴 것입니다. 모니터 높이 조절용으로도 꽤 괜찮아 보이기도 합니다.
개발자가 알고리즘을 공부하는 것이 꼭 필요한지에 대한 논란은 이미 인터넷 상에 많이 있고,개인마다 생각이 다를 수 있다고 생각한다.그러나, 누군가는 같은 시간에 더 좋은 코드를 만들어내고 누구는 만들지 못한다. 그리고 또 다른 누군가는 좋은 코드를 넘어 훌륭한 코드를 만들어 낸다.
(개인적으로 훌륭한 코드는 기본적으로 동작도 잘되고, 이식성도 좋으며 확장성까지 가진데다 유지보수도 쉬운 코드를 말한다.)
좋은 코드를 만들기 위한 기본은 미시적인 것과 거시적인 것으로 나눌 수 있다고 생각한다.
거시적인 것은 애플리케이션의 전체적인 구조와 기능 이상의 것을 볼 수 있는 능력,, 즉 아키텍처와 도메인 지식을 통해 큰 그림을 이해하는 것이고, 미시적인 것은 생각한 것을 코드로 구현할 수 있는 능력으로 볼 수 있다. 아무리 좋은 아이디어가 있어도 이를 코드로 구현하지 못한다면 의미가 없으니까... 코드로 구현하기 위해서는 먼저 사용하는 언어에 대한 문법을 이해하고, 이를 기반으로 원하는 기능을 코드로 잘 구현할 수 있어야 한다. 이러한 효율적인 코드를 구현하는 코딩 스킬을 높일 수 있는 방법 중 하나가 알고리즘과 자료구조에 대한 기반을 탄탄하게 하는 것이라 생각한다.
알고리즘과 데이터 구조는 프로그래밍의 기본 과정 중 하나지만 깊이있게 공부(?)하기가 쉽지 않다.
한 때(?) 나도 열심히 공부는 했던거 같다. (그 증거가 당시 정리했던 "Algorithms & Data Structure (https://www.slideshare.net/ssuserff7918/ss) 이다. ㅎㅎ; 24,000 View가 넘는 인기 콘텐츠...ㅎㅎ). 그 이유 중 하나가 우선 재미있지 않고 어렵다는 것이었는데... 지금까지 본 대부분의 책은 아주 간단한 설명 + 어려운 문제로 구성되어 있었다. 그런데 이 책은 이런 난이도 조절을 예술적으로 잘 했다는 느낌이 든다. (기본에 충실하면서도 말이다, 이런 건 경험이 없으면 불가능하다.)
이 책은 입사를 준비하는 개발자를 위한 코딩 인터뷰를 목적으로 만들어졌다. 그래서, 코딩 인터뷰와 파이썬 기초에 대한 내용을 간단하게 살펴보고, 자료구조와 알고리즘에 대해 다루고 있다. 자료 구조와 알고리즘 관련된 각 챕터마다 관련된 문제를 던지고 문제를 해결하는 다양한 방법을 보여준다.
그래서인지, 읽는 재미(?)가 있다. 더구나, 나오는 문제는 어찌보면 쉽지만(?), 기본을 탄탄하게 잡아주는 것들만 골라 놓았다.
마지막으로, 개인적으로 파이썬은 많이 다루어보지 않았지만, 책의 내용을 이해하기엔 그리 문제가 되지 않는다. (특히, 다른 언어에 사용해 본 경험이 있다면 거의 문제가 되지 않는다.)
그렇치만, 개인적으로 이 책의 C/C++, Java 버전도 나왔으면 좋겠다. 그리고, 부록으로 나오는 개발자 취업 및 이직 준비 가이드는 다른 책에는 없는 귀중한(?) 내용이다. 취업과 이직이 목적이 아니어도 한 번 읽어두면 회사 생활하는데 도움이 될 듯하다.
이 책은 파이썬의 주요 기능과 파이썬에 어울리는 코딩 방법, 카카오 공채 문제 풀이까지 다룬다. 이제 막 파이썬을 알아가는 학생이나 초급 개발자부터 현업에서 이직을 고민하는 직장인까지 모두 고려한 책이다.
알고리즘 인터뷰를 보았을 때 장황하게 풀이를 나열한들 면접관이 이해하지 못한다면 무슨 의미가 있겠는가? ‘파이썬이 왜 알고리즘 인터뷰에 유리한지, 내가 생각하는 해결 방법을 표현하기에 가장 효율적인 이유가 무엇인지’부터 설명한다.
아직 실력이 부족한 개발자와 현업에서 자신만의 스타일로 개발하던 개발자에게 구글 파이썬 스타일 가이드를 설명하며 일관성 있는 스타일이 왜 중요한지 다룬다.
책이나 웹에서 알고리즘 풀이를 볼 때마다 느끼는 점이 있다. 설명만으로는 도저히 이해가 되지 않는데 다른 방법이 없을까? 풀이 내용을 순차적으로 살펴보면 쉽게 이해가 될 텐데 그림으로 설명한 정보 글은 없을까? 책에서는 고민하는 부분마다 일러스트를 활용해 친절히 설명되어 있다.
예제 정리도 매우 잘 되어있는 점이 마음에 들었다. 이 책의 깃헙에 방문해보면 예제 마다 리트코드, 프로그래머스 주소가 연결되어 있어서 클릭하여 바로 테스트할 수 있게 구성되어 있다.
https://github.com/onlybooks/algorithm-interview
취업 준비부터 이직 가이드까지 골고루 담겨 있는데, 그동안 저자가 코딩 테스트 문제와 개발자 채용 면접에도 관여한 만큼 실제 회사 입장에서 무엇을 원하는지, 면접에 응시하는 사람 입장에서 어떤 관점으로 회사를 바라보고 알아봐야 하는지, 면접에 무엇을 준비해야 하는지 설명한다. 이직을 준비하는 사람에게는 민감한 주제에 대한 해법을 제시한다.
마지막 ‘카카오 공채 문제 풀이’에서는 지금까지 살펴본 모든 알고리즘을 언급하며 실제로 개발자 공채에 출제되었던 문제들에 대해 어떤 방법으로 해결책을 찾아야 하는지 알아보고 가장 효과적인 답안과 풀이로 설명한다.
이 책을 읽은 후 내가 생각하는 알고리즘은 어떠한가 생각해 보았다. 우선 알고리즘은 개발자 사이에서 언제나 끝나지 않는 논쟁을 불러일으키는 주제다. 학부생 시절 항상 고민하던 부분이 있다.
“자료구조와 알고리즘, 과연 정말 필요할까? 얼마나 중요할까? 내가 당장 활용할 방법은 무엇이 있을까? 실제 현업에서는 어떻게 적용할 수 있을까?”
그러던 중 간단한 방법으로 구현해서는 해결할 수 없는 난이도 있는 문제를 만나게 되었고 이때 알고리즘 공부하며 느꼈던 경험 등을 떠올리며 새롭게 눈을 뜨게 되었다. 단순히 문제 해결을 위해 좁은 시야에 바라보는 것이 아닌 다른 관점에서 바라보는 사고력 확장의 기회였다. 막히는 문제가 있을 때마다 답안이나 타인의 코드를 훔쳐봤다면, 나만의 지식으로 해결책을 추론해 나아가는 계기가 되었다.
현업도 결코 다르지 않다. 개발 기간이 짧은 웹 애플리케이션 개발을 시작하기 전 아키텍처를 설계한다고 가정해보자. 서버부터 DB, 사용자가 접하는 화면까지 중요하지 않은 분야는 없다. 기간이 짧음에도 불구하고 사용자, 개발자, 사 측이 생각하는 추구하는 방향과 요구 사항을 반영해야 한다면 무엇을 고려해야 할까?. UI/UX, 브라우저 로딩 시간, 개발 기간, 서버 유지 비용 등 무엇 하나 중요하지 않은 것이 없다. 그러므로 전체를 바라보는 시야와 각 부분별 무엇을 중점으로 봐야 할지 위험을 고려하며 바라보아야 한다. 이런 일련의 과정은 고민해보지 않았다면 도무지 떠오르지 않는 생각들이다. 사고 확장의 경험이 없다면(본인의 의지와 상관없이) 문제가 발생한 상황을 상상조차 해본 적이 없기 때문이다. 그렇기에 스스로 생각하고, 더 좋은 제품을 만들기 위해서는 프로그래밍 언어를 배우는 시기와 현업 모두 알고리즘은 필연적이라는 생각이 들었다.
알고리즘을 배운 적도 없고 필요 없다는 분에게 말하고 싶다. 알고리즘을 사용한 적 없다고 말하지만 이미 당신의 코드에는 적재적소 하게 반영되어 있다고. 당신의 뇌는 뛰어나서 더 이상 사고를 확장할 필요성이 없을지 몰라도, 일반인 중 깊이 사고하는 것 자체가 힘든 사람에게는 알고리즘을 통해 능력을 키워나갈 기회가 되니 제발 막지 말라고. 이 책을 읽고 나면 “알고리즘이 왜 필요한가?”라는 질문에 대한 답을 줄 테니 꼭 읽어보라고.