코딩 테스트 준비: 파이썬 알고리즘 인터뷰 후기 (1)
안녕하세요, 매주한책입니다.
이번에는 파이썬 코딩 테스트를 준비할 때 읽으면 좋은 책 "파이썬 알고리즘 인터뷰" 후기를 남겨보려고 합니다.
책을 읽은 이유:
최근에 백준 티어를 확인해봤는데, 골드1을 봤습니다.
그런데 과거에 풀었던 문제들 덕분에 골드1이 된 것이지, 제 실력이 골드1이라고 생각하지 않아서, 알고리즘을 공부해야겠다고 결심했습니다. 게다가 아래 풀었던 문제 분포도를 보면 알겠지만, 풀었던 알고리즘이 구현과 dp, 그래프에 몰려있습니다. 저의 약점은 String 부분이라 보강하고 싶었습니다.
저는 C언어로 코딩하는 스타일에 익숙해진 편이라서 python에 익숙하지 않습니다.
게다가 저는 백준 사이트에서 문제를 푸는 것이 익숙해서 프로그래머스 사이트가 익숙하지 않습니다.
scanf()로 입력을 받고, printf()로 출력하는 것이 익숙한 저에게 함수를 채우고 값을 리턴하는 그 방식은 큰 벽으로 느껴집니다.
그래도, 노력하면 파이썬과 조금 더 친해질 수 있다는 생각에 "파이썬 알고리즘 인터뷰"를 읽어보았습니다.
파이썬 알고리즘 인터뷰 후기
우선 파이썬 알고리즘 인터뷰는 코딩 테스트를 어떻게 준비하면 좋을지 step by step으로 알려줍니다.
그리고 부록으로 회사 및 이직 가이드도 제시해주는데요, 회사 별로 상세하게 안내가 되어있어서 공부 의지를 활활 타오르게합니다. 그리고 파이썬에 대한 설명 부분이 상세하고, 점프 투 파이썬에서 보지 못 했던 실전 개념이 추가되어서 코딩 테스트 준비하는데 도움이 많이 되었습니다.
파이썬 문법을 아얘 모르는 상태에서 읽기엔 힘들 것 같고, 적어도 점프 투 파이썬을 한 번은 보신 분이 읽으면 도움이 될 거라 생각됩니다.
leetcode 리트코드 문제로 답변이 적혀있어서, 바로 백준 문제로 테스트하기엔 어려움이 있었습니다.
백준 파이썬 입출력 관련해서는 다른 블로그를 참조하고, 하루 이틀 사용하는 연습을 하면 익숙해집니다.
#백준 입력 받는 방법
import sys
for i in range(3):
word=sys.stdin.readline().strip()
코딩 테스트를 처음 접해보거나, 어느정도 아는 분들이 가질 법한 질문을 모두 모아서 답변이 되어있는데
이 부분에서 정말 신경써서 책을 만드신 거라 생각했습니다.
파이썬 알고리즘 인터뷰 목차
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 추석 트래픽
-from 교보 문고-
is와 == 차이
파이썬 비교 연산자 중 is와 ==가 있습니다. is는 id()를 비교하는 함수이고, ==는 값을 비교하는 연산자입니다.
#NULL은 값이 정의되어 있지 않아서 is로 비교해야합니다.
a=[1, 2, 3]
a==a #True
a==list(a) #True
a is a #True
a is list(a) #False
'컴퓨터 IT > Python' 카테고리의 다른 글
파이썬 좌표 문제 입력 받는 방법(DFS, BFS) 퀵소트 코드 (0) | 2022.09.27 |
---|---|
파이썬 좌표 문제 쉽게 해결하는 방법 (2) | 2022.09.21 |
이것이 취업을 위한 코딩 테스트다 파이썬 후기 (0) | 2022.09.19 |
matplotlib, plt scatter 완벽 정리: 파이썬 머신러닝 판다스 데이터 분석(3) (0) | 2022.08.06 |
Dataframe 기본 개념 정리: 파이썬 머신러닝 판다스 데이터 분석 (2) (0) | 2022.08.05 |
댓글
이 글 공유하기
다른 글
-
파이썬 좌표 문제 쉽게 해결하는 방법
파이썬 좌표 문제 쉽게 해결하는 방법
2022.09.21 -
이것이 취업을 위한 코딩 테스트다 파이썬 후기
이것이 취업을 위한 코딩 테스트다 파이썬 후기
2022.09.19 -
matplotlib, plt scatter 완벽 정리: 파이썬 머신러닝 판다스 데이터 분석(3)
matplotlib, plt scatter 완벽 정리: 파이썬 머신러닝 판다스 데이터 분석(3)
2022.08.06 -
Dataframe 기본 개념 정리: 파이썬 머신러닝 판다스 데이터 분석 (2)
Dataframe 기본 개념 정리: 파이썬 머신러닝 판다스 데이터 분석 (2)
2022.08.05