먼저, 알고리즘 문제를 푸는 것에 있어서 중요한 것 알고리즘 재미있게 공부하기 알고리즘 문제를 잘 푸는 방법 좋은 코드를 만드는 방법 알고리즘 복잡도 (Algorithm Complexity)
자료구조 (Data Structures)와 알고리즘 (Algorithm)은 왜 알아야 하는가? 자료구조 1. 배열 (Array, List) 정렬과 탐색 그리고 재귀
자료구조 2. 연결리스트 (Linked List) 연결리스트의 장점 연결리스트의 단점 연결리스트 vs 배열 Python에서 연결리스트 Class로 구현
자료구조 2. 연결리스트 (Linked List) (2) 더미 노드 (dummy) 를 추가한 연결리스트 만들기 Python에서 연결리스트 Class로 구현 연결리스트의 연산 구현
자료구조: 양방향 연결리스트 (Doubly Linked List) 양방향 연결 리스트의 특징 Python에서 연결리스트 Class로 구현 양방향 연결리스트의 연산 구현
자료구조 3. 스택 (Stack) 스택의 연산 스택의 구현 스택 연습문제 1.: 수식의 괄호 유효성 검사 스택의 연습문제 2: 수식의 후위표기법 스택의 연습문제 3: 후위표기된 수식의 계산
프로그래머스 - 나머지 한 점 문제 설명 직사각형을 만드는 데 필요한 4개의 점 중 3개의 좌표가 주어질 때, 나머지 한 점의 좌표를 구하려고 합니다. 점 3개의 좌표가 들어있는 배열 v가 매개변수로 주어질 때, 직사각형을 만드는 데 필요한 나머지 한 점의 좌표를 r
프로그래머스 - 운송 트럭 XX 회사는 트럭을 이용해 상품을 운반합니다. 트럭은 최대 무게가 한정되어있습니다. 직원은 트럭에 상품을 순서대로 실으며, 상품을 실을 수 없는 트럭은 바로 목적지로 출발합니다. 이때 우리는 모든 상품을 운반하는데 필요한 트럭은 최소 몇 대
프로그래머스 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 빨간색으로 칠해져 있고 가장 끝쪽의 모서리 한 줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 빨간색과 갈색으로 색칠된 격자의 개수는 기억했지
프로그래머스 - 사탕 담기 `m` 그램(gram)을 담을 수 있는 가방에 사탕을 가득 채우는 경우의 수를 구하려 합니다. 단, 같은 사탕은 또 넣을 수 없습니다. 가방이 감당할 수 있는 무게 m, 사탕별 무게가 담긴 배열 weights가 매개변수로 주어질 때, 가방을
자료구조 4. 큐 (Queue) 큐의 연산 큐 구현 배열을 이용한 구현: Python 리스트와 함수 이용 양방향(이중)연결리스트 이용하여 구현: 양방향 연결리스트 큐의 활용
큐의 응용 자료구조 4-1. 환형/원형 큐 (Circular Queue) 환형/원형 큐의 연산 배열로 구현 자료구조 4-2. 우선순위 큐 (Priority Queue) 우선순위를 유지하는 방법 우선순위 큐의 구현
자료구조 5. 트리 (Tree) 트리 용어 이진 트리 (Binary Tree) 포화 이진 트리 (Full Binary Tree) 완전 이진 트리 (Complete Binary Tree)
자료구조 5-2. 이진 트리 이진 트리의 연산 이진트리의 연산 구현 0. 초기 Class 이진 트리의 연산 구현 1. size() 이진 트리의 연산 구현 2. depth() 이진 트리의 연산 구현 3. travasal() 깊이 우선 순회 (Depth Firs
이진 트리의 응용 1 이진 탐색 트리 (Binary Search Tree) 이진 탐색 트리의 연산 이진 탐색 트리의 연산 구현 1. insert() 이진 탐색 트리의 연산 구현 2. remove() 이진 탐색 트리의 연산 구현 3. lookup() 이진 탐색
이진 트리의 응용 2 힙 (Heap) 이진 탐색 트리와의 비교 힙의 장점 힙의 연산 힙의 구현 힙의 응용 우선 순위 큐 (Priority Queue) 힙 정렬 (Heap sort)
프로그래머스 예산_소팅 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수
프로그래머스 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는
프로그래머스 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중
프로그래머스 - 최솟값 만들기 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최
프로그래머스 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 complet
[Programmers] 21. 자료구조: 해시 (Hash): 알고리즘 문제풀이: 프로그래머스 완주하지 못한 선수 프로그래머스 완주하지 못한 선수 풀이 자료구조의 선택 해시를 이용한 문제풀이의 복잡도 배열의 정렬을 이용한 문제풀이의 복잡도
[Programmers][python] 22. 문제풀이 실습 (10): 프로그래머스 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어,
[Programmers] 23. 알고리즘 문제풀이(2): 프로그래머스 체육복 프로그래머스 체육복 풀이 탐욕법 (Greedy Algorithm) 체육복 문제 해답의 시간복잡도 해시로 구현하기 내 코드의 시간복잡도
프로그래머스 큰 수 만들기 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입
프로그래머스 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니
Jupyert notebook Jupyter notebook 설치하기 Jupyter notebook의 기본 구성, 단축키 markdown (.md) Numpy로 숫자 다루기 Numpy로 연산하기
선형대수 (Linear Algebra) (1): 선형시스템 기초 선형시스템 (Linear System) 선형 시스템의 구성 요소 선형시스템: $Ax = b$, 연립일차방정식의 대수적 표현 실습: 행렬과 벡터의 코딩 및 연산
선형대수 (Linear Algebra) (2): 가우스 소거법, LU분해 선형시스템의 해 가우스 소거법 (Gauss Elimination) 행렬분해 (1): LU 분해 ### LU 분해 실습
선형대수 (Linear Algebra) (3): 행렬연산과 선형조합 행렬 용어 정리 행렬의 곱 분할행렬 (Partitioned Matrix) : 아주 중요 선형조합 (Linear Combination): 아주 중요 스칼라, 벡터, 행렬, 그리고 텐서: 계층구조
선형대수 (Linear Algebra) (4): 좌표계 변환 (Change of Basis) 좌표계 (coordinate system) 선형변환 (Linear Transformation) 행렬변환 (Matrix Transformation) ### 선형변환 코딩
벡터의 투영/사영, 직교 행렬, QR 분해 벡터의 투영/사영(Projrction) 직교 행렬 (orthogonal matrix) 행렬분해 (2): QR 분해 (QR Decomposition)
SVD, PCA, 최소제곱법 행렬분해 (3): 특이값 분해: SVD 주성분 분석: (PCA: principal component analysis) PCA의 활용: 벡터공간의 최소제곱법 최소제곱법 (least squares method) SVD, PCA, 최소제
통계학 (Statistics) 통계학의 개념/용어 통계학 기초 python 실습