
나동빈, 『이것이 취업을 위한 코딩 테스트다 with 파이썬』, 한빛미디어(2020)을 읽고 개인 학습용으로 정리한 내용입니다.Greedy Algorithm은 현재 상황에서 지금 당장 좋은 것만 고르는 방법으로 문제를 푸는 알고리즘이다.매 순간 가장 좋아보이는 것을 선

나동빈, 『이것이 취업을 위한 코딩 테스트다 with 파이썬』, 한빛미디어(2020)을 읽고 개인 학습용으로 정리한 내용입니다.코딩테스트에서 구현Implementation이란 머릿 속에 있는 알고리즘을 소스코드로 바꾸는 과정이다.구현 문제 유형은 모든 범위에 코딩 테스

Number 자료형이 안정적으로 나타낸 수 있는 값의 최대치는 $2^{53} -1$ ($10^{16}$ 미만)이다.BigInt 사용법생성BigInt는 10n처럼 정수 리터럴 뒤에 n을 붙이거나 함수 BigInt()를 호출해 생성할 수 있다.연산연산자는 + - \* \*

스택에 자료를 넣는다: push()스택에서 자료를 뺀다: pop()큐에 자료를 넣는다: push()큐에서 자료를 뺀다: shift()배열의 끝에 하나 이상의 요소를 추가하고 배열의 새로운 길이를 반환한다.매개변수를 여러 개 작성하면 여러 개를 한꺼번에 배열에 추가할 수

DFS: Depth-First Search 깊이 우선 탐색이라고도 부르며, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘이다. 실제 문제 풀이 시 2차원 배열에서 인접 영역 탐색하기

너비 우선 탐색이라고도 부르며, 루트 노트에서 시작해서 인접한 노드들을 먼저 탐색하는 방법이다.

코딩 테스트의 이진 탐색 문제는 탐색 범위가 큰 상황에서의 탐색을 가정하는 문제가 많다. 탐색 범위가 2,000만을 넘어가면 이진 탐색으로 문제에 접근해봐야 한다.

어떤 문제는 메모리 공간을 약간 더 사용하면 연산 속도를 비약적으로 증가시킬 수 있다.동적 계획법은 2가지 경우로 나누어진다.Top-Down 방식재귀 함수를 이용하여 다이나믹 프로그래밍 소스 코드를 작성하는 방법큰 문제를 해결하기 위해 작은 문제를 호출하는 방식이다.M

짧은 경로를 찾는 알고리즘이다. '길 찾기' 문제라고도 한다.최단 경로 알고리즘은 보통 그래프로 표현하는데 각 지점은 그래프에서 '노드'로 표현되고, 지점 간 연결된 도로는 그래프에서 '간선'으로 표현된다.또한 실제 코딩 테스트에서는 최단 경로를 모두 출력하는 문제보다
비어있거나 하나만 있는 케이스첫번째 혹은 마지막 케이스크기가 굉장히 큰 케이스범위가 굉장히 넓은 케이스양수만 있는, 혹은 음수만 있는 케이스배열 사이즈가 클 때 전체 반복을 두 번 이상 하면 타임아웃에 걸릴 수 도 있다고 생각하자.overflow 가 나는 케이스 (in
|Sorting|상한|평균|하한| |------|---|---|---| |버블 정렬|$O(N^2)$|$O(N^2)$|$O(N^2)$ (개선할 경우 $O(N)$)| |선택 정렬|$O(N^2)$|$O(N^2)$|$O(N^2)$| |퀵 정렬|$O(N^2)$|$O(NlogN)
문제를 공격적으로 읽으면서, 문제가 원하는 바를 완전히 이해하는 과정이 필요함.문제가 요구하는 바를 직관적으로 이해하기문제를 프로그래밍 언어로 재정의 (변수, 함수 정의 등)어떤 알고리즘과 자료구조를 사용할 것인가?설계한 알고리즘이 모든 경우에 요구 조건을 정확히 수행
정수의 이진수 표현을 자료 구조로 쓰는 기법을 비트마스크라고 부른다.더 빠른 수행 시간$O(1)$에 구현되는 것이 많다.더 간결한 코드반복문 없이 한 줄에 코드를 쓸 수 있다.더 작은 메모리 사용량많은 데이터를 미리 계산해 둘 수 있어서 캐시 효율이 더 좋다.연관 배열
조합 순열