Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jongdeug/algorithm

알고리즘 공부 및 코딩 테스트 준비
https://github.com/jongdeug/algorithm

Last synced: about 1 month ago
JSON representation

알고리즘 공부 및 코딩 테스트 준비

Awesome Lists containing this project

README

        

# 알고리즘 학습

알고리즘 공부 및 코딩 테스트를 준비하는 공간입니다.

## 언어

Javascript를 사용하여 공부하고 있습니다.

## 시간 복잡도, 시간 제한

시간 복잡도와 시간 제한을 고려하며 문제를 푸는 중이었는데, 잘못 알고 있었던 것 같아 정리해봅니다.

- 일반적인 CPU 기반의 PC는 1초에 실행할 수 있는 최대 연산 횟수는 약 100,000,000번

| 시간 복잡도 | 최대 연산 횟수 |
| ----------- | -------------- |
| O(n) | 약 1억번 |
| O(n^2) | 약 1만번 |
| O(n^3) | 약 500번 |
| O(2^n) | 약 20번 |
| O(n!) | 10번 |

## 복습 큐

- [minSubArrayLen](challenge/problem-solving-pattern/minSubArrayLen/minSubArrayLen.js) (상)
- [sameFrequency](challenge/problem-solving-pattern/findLongestSubstring/findLongestSubstring.js) (상)
- 단일 연결 리스트 reverse 함수 복습
- [radix-digitCount](challenge/the-whild-west/radix-sort/radixSort.js) (중)
- [coinChange](challenge/the-whild-west/coin-change.js) (상)
- [findPair](challenge/the-whild-west/findPair.js) (중)
- [binary-search-tree-remove 함수](challenge/the-whild-west/binary-search-tree.js)
- [trie](challenge/the-whild-west/trie.js) (상)

## 코테 문제 복습 큐(프로그래머스)

1. ~~[하노이 탑](challenge/programmers/recursion/하노이%20탑/하노이%20탑%201회차.js) (재귀인데 풀지도 못함ㅠㅠ)~~
2. ~~[방문 길이](challenge/programmers/방문%20길이.js) (단순 구현인데 너무 꼬아서 풀었음)~~
3. ~~[둘만의 암호](challenge/programmers/둘만의%20암호%201회차.js) (흠)~~
4. ~~[뉴스 클러스터링](challenge/programmers/%5B1차%5D%20뉴스%20클러스터링%201회차.js) (흠)~~
5. ~~[디펜스 게임](challenge/programmers/binary-search/디펜스%20게임/디펜스%20게임%202회차.js) (이분탐색)~~
6. ~~[디펜스 게임](challenge/programmers/priority-queue/디펜스%20게임/디펜스%20게임%202회차.js) (우선순위 큐)~~
7. ~~[전화번호 목록](challenge/programmers/sort/전화번호%20목록/전화번호%20목록%202회차.js) (문자열 다루기, 정렬)~~
8. ~~[양궁대회 2회차](challenge/programmers/순열/양궁%20대회/양궁%20대회%202회차.js) (순열을 2단계 끝내고 제대로 하자)~~
9. ~~[후보키](challenge/programmers/조합/후보키/후보키%201회차.js) (겁나 어렵네;;;;)~~
10. ~~[숫자 카드 나누기](challenge/programmers/최대공배수,%20최대공약수/숫자%20카드%20나누기%201회차.js) (유클리드 호제법, +소수 구하는 방법도 공부)~~
11. [뉴스 클러스터링](challenge/programmers/%5B1차%5D%20뉴스%20클러스터링%202회차.js) (딱 한번만 더 하자)
12. [광물 캐기](challenge/programmers/sort/광물%20캐기/광물%20캐기%202회차.js) (다시!! )
13. [빛의 경로 사이클](challenge/programmers/brute-force/빛의%20경로%20사이클/빛의%20경로%20사이클%203회차.js), [이미지](images/빛의%20경로%20사이클.png) (
브루투포스)
14. [조이스틱](challenge/programmers/greedy/조이스틱/조이스틱%202회차.js) (그리디 알고리즘, 어려웡 다시!)
15. [미로 탈출](challenge/programmers/BFS/미로%20탈출%202회차.js) (다시 !! 최단 경로 공부를)
16. [카펫](challenge/programmers/단순%20구현%20/카펫/카펫%202회차.js) (단순 구현, 이런게 문제야 ,, ㅠㅠㅠ, 알아갑니다~)
17. [양궁대회](challenge/programmers/순열/양궁%20대회/양궁%20대회%203회차.js) (잘 풀었는데 한 번만 더 연습 ㄱ)
18. [후보키](challenge/programmers/조합/후보키/후보키%202회차.js) (로직을 외워서 다른 곳에도 써먹자!)
19. [숫자 카드 나누기](challenge/programmers/최대공배수,%20최대공약수/숫자%20카드%20나누기%202회차.js) (혹시 모르니까 한 번 더, +소수 구하는 법)

## 코테 문제 복습 큐(백준)

1. [괄호](challenge/boj/stack/괄호.js) (재귀 + 스택, => 재귀로 풀고 싶었는데 실패)
2. [에디터](challenge/boj/linked-list/에디터%201회차%20못품.js) (다중 연결 리스트로 해결해봐야(키로거랑 비슷할듯), 스택)
3. [후위 표기식](challenge/boj/stack/후위%20표기식.js) (해결하긴 했는데 알고리즘 책 살펴보기, 재귀로 풀었던 기억이 남)
4. [방 배정하기](challenge/boj/brute-force/방%20배정하기.js) (왜왜오애왜오애 => 분석 결과 메모리 때문임 ..)
5. [퇴사](challenge/boj/dynamic-programming/퇴사.js) (다이내믹) || [퇴사](challenge/boj/brute-force/퇴사.js) (브루트 포스)
6. [문서 검색](challenge/boj/brute-force/문서%20검색.js) (후,,,, 쉬운건뎅)
7. [전투의 신](challenge/boj/brute-force/전투의%20신.js) (다시!!)
8. [양팔저울](challenge/boj/brute-force/양팔저울.js)
9. [양치기 꿍](challenge/boj/brute-force/bfs-and-dfs/양치기%20꿍.js) (BFS)
10. [치킨치킨치킨](challenge/boj/brute-force/치킨치킨치킨.js) (좀 더 효율적으로 생각!)
11. [바이러스](challenge/boj/brute-force/bfs-and-dfs/바이러스.js) (obj에 익숙하지 않아 좀 더 공부, obj <=> map)
12. [효율적인 해킹](challenge/boj/brute-force/bfs-and-dfs/효율적인%20해킹.js) (시간초과로 못풀긴했는데 구현을 한 번더 해보는 것도 좋아서 넣었음)
13. [집합의 표현](challenge/boj/graph/union-find/집합의%20표현.js) (union-find => 서로소 집합 disjoint set => 1. 그래프 사이클 판별, 2. 최소 신장
트리(MST):크루스칼(Kruskal)의 알고리즘에서 사용)
14. [사이클 게임](challenge/boj/graph/union-find/사이클%20게임.js) (사이클 판단 방법을 몰랐음!!)
15. [친구 네트워크](challenge/boj/graph/union-find/친구%20네트워크.js) (응용)
16. [랜선 자르기](challenge/boj/binary-search/랜선%20자르기.js) (큰 로직은 품, 디테일한 부분을 잡지 못함)
17. [용돈 관리](challenge/boj/binary-search/용돈%20관리.js) (내가 집은 문제의 핵심을 아직도 모호하게 알고 있달까.. 여러번 풀어야 함)
18. [가장 긴 증가하는 부분 수열](challenge/boj/dynamic-programming/가장%20긴%20증가하는%20부분%20수열.js) (해결법이 생각 안났음)
19. [가장 긴 증가하는 부분 수열 3](challenge/boj/binary-search/가장%20긴%20증가하는%20부분%20수열%203.js) (오호,, 직관적인 방법)
20. [반도체 설계](challenge/boj/binary-search/반도체%20설계.js) (Longest Increasing Subsequence, 문제 분석을 잘못했음)
21. [특정 거리의 도시 찾기](challenge/boj/graph/dijkstra/특정%20거리의%20도시%20찾기.js) (다익스트라로 풀어봤음, 그냥 BFS 로도 풀어보자)
22. [숨바꼭질 3](challenge/boj/graph/dijkstra/숨바꼭질%203.js) (다익스트라, 덱 사용하는 방법 2가지 숙지)
23. [웜홀](challenge/boj/graph/bellman-ford/웜홀.js) (벨만포드, 다시풀어보자 최적화)

## 코딩 테스트 합격자 되기 (복습 큐)

- ~~[모의고사](challenge/golden-rabbit-book/배열/모의고사.js)~~
- ~~[괄호 회전하기](challenge/golden-rabbit-book/스택/괄호%20회전하기.js)~~
- [다시] ~~[표 편집](challenge/golden-rabbit-book/스택/표%20편집.js)~~
- ~~[두 개의 수로 특정 값 만들기](challenge/golden-rabbit-book/해시/두%20개의%20수로%20특정%20값%20만들기.js)~~
- ~~[베스트앨범](challenge/golden-rabbit-book/해시/베스트앨범.js)~~
- [다시] ~~[메뉴 리뉴얼](challenge/golden-rabbit-book/해시/메뉴%20리뉴얼.js)~~
- ~~[다단계 칫솔 판매](challenge/golden-rabbit-book/트리/다단계%20칫솔%20판매.js)~~
- ~~[미로 탈출](challenge/golden-rabbit-book/트리/미로%20탈출.js) (방식은 맞았는데 한 번더)~~
- [양과 늑대](challenge/golden-rabbit-book/트리/양과%20늑대.js) (생전 처음 보는 BFS 문제 뇌의 확장!)
- [길 찾기 게임](challenge/golden-rabbit-book/트리/길%20찾기%20게임.js) (잘 풀었음. 근데 구현 방식만, 배열 or 포인터 좀 더 다듬자)
- [간단한 유니온-파인드 알고리즘 구현하기](challenge/golden-rabbit-book/집합/간단한%20유니온-파인드%20알고리즘%20구현하기.js) (경로 압축만)
- [주식 가격](challenge/golden-rabbit-book/스택/주식%20가격.js)
- [섬 연결하기](challenge/golden-rabbit-book/집합/섬%20연결하기.js)
- [다익스트라 알고리즘](challenge/golden-rabbit-book/그래프/다익스트라%20알고리즘.js)
- [벨만-포드 알고리즘](challenge/golden-rabbit-book/그래프/벨만-포드%20알고리즘.js)
- [네트워크](challenge/golden-rabbit-book/그래프/네트워크.js) (풀긴 했는데 DFS 로 풀지 않음)
- [경주로 건설](challenge/golden-rabbit-book/그래프/경주로%20건설.js) (마지막 아이디어만 ... 생각할 수 있다면 ...)
- [1부터 N까지 숫자 중 합이 10이 되는 조합 구하기](challenge/golden-rabbit-book/백트래킹/1부터%20N까지%20숫자%20중%20합이%2010이%20되는%20조합%20구하기.js) (좀만 더 숙달)
- [스도쿠 퍼즐](challenge/golden-rabbit-book/백트래킹/스도쿠%20퍼즐.js) (호오)
- [피로도](challenge/golden-rabbit-book/백트래킹/피로도.js) (너무 좋아서 다시 풀기)
- [N-퀸](challenge/golden-rabbit-book/백트래킹/N-퀸.js) (호오,,,)
- [양궁 대회](challenge/golden-rabbit-book/백트래킹/양궁%20대회.js) (후.. 저번에도 풀었었지만)
- [외벽 점검](challenge/golden-rabbit-book/백트래킹/외벽%20점검.js) (반복해야됨)
- [사라지는 발판](challenge/golden-rabbit-book/백트래킹/사라지는%20발판.js) (완벽하게 이해못함... 어렵)
- [가장 큰 수](challenge/golden-rabbit-book/정렬/가장%20큰%20수.js) (오호)
- [지형 이동](challenge/golden-rabbit-book/정렬/지형%20이동.js) (막혀도 몰입해서 끝까지 풀기)
- [배열 회전하기](challenge/golden-rabbit-book/시뮬레이션/배열%20회전하기.js) (공식)
- [달팽이 수열 만들기](challenge/golden-rabbit-book/시뮬레이션/달팽이%20수열%20만들기.js) (DFS 로 풀어보고 싶었음)
- [롤케이크 자르기](challenge/golden-rabbit-book/시뮬레이션/롤케이크%20자르기.js) (호오..)
- [카펫](challenge/golden-rabbit-book/시뮬레이션/카펫.js)
- [LCS 길이 계산하기](challenge/golden-rabbit-book/동적계획법/LCS%20길이%20계산하기.js) (풀었지만 다시)
- [LIS 길이 계산하기](challenge/golden-rabbit-book/동적계획법/LIS%20길이%20계산하기.js) (풀었지만 다시)
- [땅따먹기](challenge/golden-rabbit-book/동적계획법/땅따먹기.js) (풀었지만 다시!)
- [도둑질](challenge/golden-rabbit-book/동적계획법/도둑질.js) (어려움)
- [가장 큰 정사작형 찾기](challenge/golden-rabbit-book/동적계획법/가장%20큰%20정사각형%20찾기.js) (생각 확장)
- [구명보트](challenge/golden-rabbit-book/그리디/구명보트.js) (.......... 점점점점점)
- [기지국 설치](challenge/golden-rabbit-book/그리디/기지국%20설치.js) (음.. 나한텐 어려웠음)