일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Data Structure
- db
- frontend
- network
- 알고리즘
- BFS
- Graph
- 자바
- 다이나믹 프로그래밍
- Javascript
- DP
- VIM
- Database
- CS
- TypeScript
- Redux
- 백준
- java
- vscode
- Python
- 안드로이드
- DFS
- 프로그래머스
- 동적 계획법
- react
- LeetCode
- 리트코드
- Algorithm
- git
- 그레이들
- Today
- Total
목록Algorithm (22)
늘 겸손하게
LIS Longest Increasing Subsequence의 약자 최장 증가 부분 수열 길이가 N인 배열의 원소들을 골라 만든 부분 수열 중, 부분 수열의 원소들이 모두 오름차순으로 정렬되어 있고 가장 길이가 긴 수열이 '최장 증가 부분 수열' 예로, [ 6, 9, 1, 4, 10, 2, 3, 7]의 최장 증가 부분 수열은 [1, 2, 3, 7] 최장 증가 부분 수열의 길이 구하는 방법 1. dp 2. 이분 탐색 1. dp 가장 단순한 방법이지만 O(N^2) 시간복잡도를 가져 배열의 길이가 긴 경우에는 비효율적인 방법 numbers = [ 6, 9, 1, 4, 10, 2, 3, 7] def LIS(arr): N = len(arr) dp = [1 for _ in range(N)] for i in ran..

1.Bubble sort 버블 정렬 서로 인접한 두 원소를 비교하고 왼쪽 원소가 오른쪽 원소보다 크기가 클 경우 서로 값을 교환하여 정렬하는 방식 원소의 이동이 거품이 수면으로 올라오는 모습으로 보여서 버블 정렬로 불리게됨 구현은 간단하나 효율성은 많이 떨어지는 정렬 알고리즘 알고리즘 1. 첫 번째 원소와 두 번째 원소, 두 번째 원소와 세 번째 원소, 세 번째 원소와 네 번째 원소, ...., 마지막-1 원소와 마지막 원소를 비교하여 n -1번째 원소가 n번째 원소보다 큰 경우 교환 2. 1번 과정이 끝나면 가장 큰 원소가 배열 맨 뒤로 이동하므로 배열 마지막 원소를 제외한 나머지 원소들을 가지고 1번 과정을 다시 수행 3. 배열이 완전히 정렬될때까지 1,2번 과정 반복 시간복잡도 최선, 평균, 최악 ..
주어진 숫자 number가 소수인지 아닌지 판별하는 단순한 코드 2부터 number까지의 숫자로 number를 나누어 보고 나머지가 존재하면 false를 반환하고, 나머지가 존재하는 경우가 없으면 true를 반환하는 함수 1 2 3 4 5 6 7 8 9 10 const isPrime = function(number) { if (number
출처 : https://velog.io/@devjade/JavaScript%EB%A1%9C-%EC%88%9C%EC%97%B4%EA%B3%BC-%EC%A1%B0%ED%95%A9-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0 JavaScript로 순열과 조합 알고리즘 구현하기 1. 조합 서로 다른 n개의 물건에서 순서를 생각하지 않고 r개를 택할 때, 이것은 n개에서 r개를 택하는 조합이라 하고, 이 조합의 수를 기호로 nCr와 같이 나타낸다. 바로 예를 살펴보도록 하자. 4Com velog.io 자바스크립트로 순열과 조합을 만드는 코드 1. 순열 ( Permutation ) 정의 : 서로 다른 n개의 원소를 가지는 집합에..