일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 이진탐색
- 스토어드 프로시저
- String
- union find
- two pointer
- binary search
- Hash
- Trie
- Two Points
- 그래프
- Dijkstra
- SQL
- DP
- Stored Procedure
- MYSQL
- Brute Force
- 다익스트라
- Today
- Total
목록Algorithm & Data structure (29)
codingfarm
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134#include using namespace std; class ListNode {public: int value; ListNode* pPrev, * pNext; ListNode() { ..
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#include using namespace std; class VectorNode {public: int value, key;}; class Vector {public: int cnt, reserved; VectorNode *nodes; void Resize() { reserved *= 2; VectorNode *tmp = new VectorNode[reserved]; for (int i = 0; i = reserved) Resize(); nodes[cnt].key = key; no..
세그먼트 트리는 배열의 구간합을 더 효율적으로 구하기 위한 알고리즘이다. 가령 임의의 배열이 주어질때 위 배열에서 길이 n만큼의 구간을 다 구하는데 걸리는 시간 복잡도는 $O(n)$ 이다. 하지만 매번 구간의 합을 구할때마다 해당길이 만큼 계속해서 반복하는것은 시간낭비이다. 더 효율적인 방법은 없을까? 임의의 배열 S가 주어질때 S[i]는 arr[0] ~ arr[i] 에 있는 모든 원소들의 합과 같다. 만약 $a \sim b$까지의 구간에 있는 원소들의 합을 구해야 한다면? S[b]-S[a-1] 을 통해 구간의 합을 $O(1)$의 상수 시간만에 구할 수 있다. 하지만 이 방법은 배열 요소의 값이 변한다면 값을 수정하기가 굉장히 번거로워진다. 가령 a[i]의 값이 변한다면 S[i] 이후의 값들을 모두 수정..
https://www.acmicpc.net/problem/1762 평면그래프가 노드간의 연결 정보를 통해 주어질때 그래프상의 삼각형을 모두 다 찾는 문제이다. 점의 갯수가 10만개 이기에 완전탐색은 불가능하며 메모리 또한 신경써서 다뤄줘야 한다. 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 #include #include #include using namespace std; vector nodes; int main(void) { ios::sync_with_s..
알고리즘 기초 https://www.acmicpc.net/problem/3425 https://www.acmicpc.net/problem/3055 https://www.acmicpc.net/problem/1062 https://www.acmicpc.net/problem/1713 https://www.acmicpc.net/problem/1103 https://www.acmicpc.net/problem/1039 https://www.acmicpc.net/problem/1920 https://www.acmicpc.net/problem/9663 https://www.acmicpc.net/problem/1759 https://www.acmicpc.net/problem/2580 https://www.acmicpc...
Given an array of integers A, a move consists of choosing any A[i], and incrementing it by 1. Return the least number of moves to make every value in A unique. Example 1: Input: [1,2,2] Output: 1 Explanation: After 1 move, the array could be [1, 2, 3]. Example 2: Input: [3,2,1,2,1,7] Output: 6 Explanation: After 6 moves, the array could be [3, 4, 1, 2, 5, 7]. It can be shown with 5 or less moves..
https://leetcode.com/problems/combination-sum-ii/ Combination Sum II - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com Given a collection of candidate numbers (candidates) and a target number (target), find all unique combinations in candidates where the candidate numbers sums to t..
https://leetcode.com/problems/longest-repeating-character-replacement/ Longest Repeating Character Replacement - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com Given a string s that consists of only uppercase English letters, you can perform at most k operations on that string. In..
https://leetcode.com/problems/vowel-spellchecker/ Vowel Spellchecker - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com Given a wordlist, we want to implement a spellchecker that converts a query word into a correct word. For a given query word, the spell checker handles two categor..