|
6 | 6 | ## Algorithm basic List |
7 | 7 |
|
8 | 8 | ### String basic part |
9 | | -* 주어진 문자열을 int 형으로 변환한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/basic/StringParseToInt.java) |
10 | | -* 주어진 문자열을 역순으로 출력한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/basic/StringReverse.java) |
11 | | -* 주어진 문자열에서 문자열을 구성하고 있는 각각의 문자열들이 고유한지를 판단한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/basic/UniqueCharacterInString.java) |
12 | | -* 주어진 문자열이 애너그램인지를 판단한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/basic/IsAnagram.java) |
13 | | -* 주어진 문자열을 길이와 함께 적어주면서 압축을 한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/basic/CharacterCompressWithLength.java) |
14 | | -* 주어진 문서(단어별로 나뉘어진 배열)에서 특정 단어의 빈도를 구한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/basic/FrequencyStringInDocument.java) |
| 9 | +* 주어진 문자열을 int 형으로 변환한다. [code](src/test/java/algorithm/basic/StringParseToInt.java) |
| 10 | +* 주어진 문자열을 역순으로 출력한다. [code](src/test/java/algorithm/basic/StringReverse.java) |
| 11 | +* 주어진 문자열에서 문자열을 구성하고 있는 각각의 문자열들이 고유한지를 판단한다. [code](src/test/java/algorithm/basic/UniqueCharacterInString.java) |
| 12 | +* 주어진 문자열이 애너그램인지를 판단한다. [code](src/test/java/algorithm/basic/IsAnagram.java) |
| 13 | +* 주어진 문자열을 길이와 함께 적어주면서 압축을 한다. [code](src/test/java/algorithm/basic/CharacterCompressWithLength.java) |
| 14 | +* 주어진 문서(단어별로 나뉘어진 배열)에서 특정 단어의 빈도를 구한다. [code](src/test/java/algorithm/basic/FrequencyStringInDocument.java) |
15 | 15 |
|
16 | 16 | ### Basic Math |
17 | | -* 주어진 두 수의 최대 공약수와 최소 공배수를 구한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/basicMath/GcdAndGcm.java) |
18 | | -* n개의 서로 다른 원소 중 r개의 원소를 순서없이 선택하는 방법의 수를 구한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/basicMath/BasicCombination.java) |
19 | | -* 주어진 수보다 작은 소수의 개수를 구한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/basicMath/FindPrimeNumTest.java) |
20 | | -* Fibonacci 를 계산하는 함수를 작성한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/basicMath/Fibonacci.java) |
21 | | -* 주어진 정수의 각 자리 수의 합을 구한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/basicMath/SumEachNum.java) |
22 | | -* 사다리를 한 칸 또는 두 칸씩 오를 수 있다고 했을 때 사다리 높이에 따른 사다리 오르기 방법의 경우의 수를 구한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/basicMath/Ladder.java) |
| 17 | +* 주어진 두 수의 최대 공약수와 최소 공배수를 구한다. [code](src/test/java/algorithm/basicMath/GcdAndGcm.java) |
| 18 | +* n개의 서로 다른 원소 중 r개의 원소를 순서없이 선택하는 방법의 수를 구한다. [code](src/test/java/algorithm/basicMath/BasicCombination.java) |
| 19 | +* 주어진 수보다 작은 소수의 개수를 구한다. [code](src/test/java/algorithm/basicMath/FindPrimeNumTest.java) |
| 20 | +* Fibonacci 를 계산하는 함수를 작성한다. [code](src/test/java/algorithm/basicMath/Fibonacci.java) |
| 21 | +* 주어진 정수의 각 자리 수의 합을 구한다. [code](src/test/java/algorithm/basicMath/SumEachNum.java) |
| 22 | +* 사다리를 한 칸 또는 두 칸씩 오를 수 있다고 했을 때 사다리 높이에 따른 사다리 오르기 방법의 경우의 수를 구한다. [code](src/test/java/algorithm/basicMath/Ladder.java) |
23 | 23 |
|
24 | 24 | ### Recursion part |
25 | | -* 주사위로 이동 가능한 경우의 수를 모두 구한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/recursion/Dice.java) |
26 | | -* n비트의 모든 경우의 수를 출력한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/recursion/NBitWays.java) |
27 | | -* 순열을 구한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/recursion/Permutation.java) |
28 | | -* N개 괄호로 만들 수 있는 모든 조합 출력하기. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/recursion/BraceCombination.java) |
| 25 | +* 주사위로 이동 가능한 경우의 수를 모두 구한다. [code](src/test/java/algorithm/recursion/Dice.java) |
| 26 | +* n비트의 모든 경우의 수를 출력한다. [code](src/test/java/algorithm/recursion/NBitWays.java) |
| 27 | +* 순열을 구한다. [code](src/test/java/algorithm/recursion/Permutation.java) |
| 28 | +* N개 괄호로 만들 수 있는 모든 조합 출력하기. [code](src/test/java/algorithm/recursion/BraceCombination.java) |
29 | 29 |
|
30 | 30 | --- |
31 | 31 |
|
|
36 | 36 | * 역순으로 출력한다. |
37 | 37 | * k번째 원소를 찾는다. |
38 | 38 | * 회문인지 판단한다. |
39 | | -[code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/datastructure/codeedlist/SinglecodeedListTest.java) |
| 39 | +[code](src/test/java/datastructure/codeedlist/SinglecodeedListTest.java) |
40 | 40 |
|
41 | 41 | ### Stack |
42 | | -* Array를 사용하여 Stack을 구현한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/datastructure/stack/MyStackWithArrayTest.java) |
43 | | -* ArrayList를 사용하여 Stack을 구현한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/datastructure/stack/MyStackWithArrayListTest.java) |
44 | | -* Stack에 저장된 값들 중 최소값을 반환하는 minStack() 함수를 구현한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/datastructure/stack/MinimumStackTest.java) |
45 | | -* Stack 자료구조를 사용하여 회문을 판별한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/datastructure/stack/IsPalindromeTest.java) |
46 | | -* 괄호의 유효성을 체크한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/datastructure/stack/CheckBrace.java) |
| 42 | +* Array를 사용하여 Stack을 구현한다. [code](src/test/java/datastructure/stack/MyStackWithArrayTest.java) |
| 43 | +* ArrayList를 사용하여 Stack을 구현한다. [code](src/test/java/datastructure/stack/MyStackWithArrayListTest.java) |
| 44 | +* Stack에 저장된 값들 중 최소값을 반환하는 minStack() 함수를 구현한다. [code](src/test/java/datastructure/stack/MinimumStackTest.java) |
| 45 | +* Stack 자료구조를 사용하여 회문을 판별한다. [code](src/test/java/datastructure/stack/IsPalindromeTest.java) |
| 46 | +* 괄호의 유효성을 체크한다. [code](src/test/java/datastructure/stack/CheckBrace.java) |
47 | 47 |
|
48 | 48 | ### Queue |
49 | | -* Stack을 사용하여 queue를 stack처럼 만든다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/datastructure/queue/ReverseQueueTest.java) |
50 | | -* Stack 두 개로 Queue를 구현한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/datastructure/queue/QueueWithTwoStack.java) |
| 49 | +* Stack을 사용하여 queue를 stack처럼 만든다. [code](src/test/java/datastructure/queue/ReverseQueueTest.java) |
| 50 | +* Stack 두 개로 Queue를 구현한다. [code](src/test/java/datastructure/queue/QueueWithTwoStack.java) |
51 | 51 |
|
52 | 52 | ### BinaryTree |
53 | 53 | * 바이너리 트리에서 최대값을 구한다. |
54 | 54 | * 주어진 바이너리 트리가 균형 잡힌 트리인지 판별한다. |
55 | 55 | * 오름차순으로 정렬된 배열을 Binary Search Tree로 변환한다. |
56 | 56 | * 주어진 트리가 BST인지 확인한다. |
57 | | -[code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/datastructure/binaryTree/BinaryTree.java) |
| 57 | +[code](src/test/java/datastructure/binaryTree/BinaryTree.java) |
58 | 58 |
|
59 | 59 | ### Priority Queue |
60 | | -* Priority queue를 사용하여 heap sort를 하라. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/datastructure/priorityqueue/HeapSortByUsingPQ.java) |
61 | | -* 많은 수 중 top 10을 구한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/datastructure/priorityqueue/CalcTopTen.java) |
| 60 | +* Priority queue를 사용하여 heap sort를 하라. [code](src/test/java/datastructure/priorityqueue/HeapSortByUsingPQ.java) |
| 61 | +* 많은 수 중 top 10을 구한다. [code](src/test/java/datastructure/priorityqueue/CalcTopTen.java) |
62 | 62 |
|
63 | 63 | --- |
64 | 64 |
|
65 | 65 | ## Sort and Search |
66 | | -* bubble sort를 구현한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/sort/BubbleSort.java) |
67 | | -* Insertion sort를 구현한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/sort/InsertionSort.java) |
68 | | -* Selection sort를 구현한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/sort/SelectionSort.java) |
69 | | -* Quick sort를 구현한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/sort/QuickSort.java) |
70 | | -* radix sort를 구현한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/sort/RadixSort.java) |
| 66 | +* bubble sort를 구현한다. [code](src/test/java/sort/BubbleSort.java) |
| 67 | +* Insertion sort를 구현한다. [code](src/test/java/sort/InsertionSort.java) |
| 68 | +* Selection sort를 구현한다. [code](src/test/java/sort/SelectionSort.java) |
| 69 | +* Quick sort를 구현한다. [code](src/test/java/sort/QuickSort.java) |
| 70 | +* radix sort를 구현한다. [code](src/test/java/sort/RadixSort.java) |
71 | 71 |
|
72 | 72 | ### Search |
73 | | -* binary search를 사용하여 O(log n)의 시간복잡도로 target을 찾는다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/search/BinarySearchTest.java) |
74 | | -* 정렬된 2차원 배열에서 검색한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/search/SearchIn2DTest.java) |
| 73 | +* binary search를 사용하여 O(log n)의 시간복잡도로 target을 찾는다. [code](src/test/java/search/BinarySearchTest.java) |
| 74 | +* 정렬된 2차원 배열에서 검색한다. [code](src/test/java/search/SearchIn2DTest.java) |
75 | 75 |
|
76 | 76 | ### bit |
77 | 77 | * 2의 제곱수인지 판별한다. |
78 | 78 | * 두 수에서 다른 비트의 개수를 구한다. |
79 | | -[code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/bit/BitOperator.java) |
80 | | -* O(1)으로 해당 데이터가 존재하는지 판단한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/bit/BitMapTest.java) |
| 79 | +[code](src/test/java/bit/BitOperator.java) |
| 80 | +* O(1)으로 해당 데이터가 존재하는지 판단한다. [code](src/test/java/bit/BitMapTest.java) |
81 | 81 |
|
82 | 82 | --- |
83 | 83 | </br> |
84 | 84 |
|
85 | 85 | ## 알고리즘 문제 풀어보기 |
86 | 86 |
|
87 | 87 | ### Dynamic Programming |
88 | | -* Jump game [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/algorithm/dp/JumpGame.java) |
| 88 | +* Jump game [code](src/test/java/algorithm/dp/JumpGame.java) |
89 | 89 |
|
90 | 90 | ### Exercise |
91 | | -* 주어진 배열에서 양 쪽의 합이 동일해지는 index의 값을 구한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/exercise/SearchEquilibrium.java) |
92 | | -* n!의 결과값에서 0의 개수를 구한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/exercise/FactorialZeroCount.java) |
93 | | -* temp 를 사용하지 않고 두 변수를 swap 한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/exercise/NoTempSwapTest.java) |
94 | | -* 어느날의 월, 일을 입력받아 요일을 반환하는 함수를 구현한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/exercise/CalenderExample.java) |
95 | | -* 주어진 배열에서 합이 최대가 되는 sub array의 합을 구한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/exercise/FindMaxSumInArray.java) |
96 | | -* 주어진 두 수 사이에 존재하는 수 중 제곱수가 되는 것을 구한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/exercise/FindSquareNum.java) |
97 | | -* 주어진 배열로 구성된 링크드 리스트의 길이를 구한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/exercise/LinkedListLength.java) |
98 | | -* 주어진 배열에서 두 자리수만 골라서 합한 값을 return 한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/exercise/OnlyTwoDigitSum.java) |
99 | | -* 각각의 주사위들이 모두 같은 면을 보이기 위한 최소 rotate 횟수를 구한다. [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/exercise/SameFaceDice.java) |
| 91 | +* 주어진 배열에서 양 쪽의 합이 동일해지는 index의 값을 구한다. [code](src/test/java/exercise/SearchEquilibrium.java) |
| 92 | +* n!의 결과값에서 0의 개수를 구한다. [code](src/test/java/exercise/FactorialZeroCount.java) |
| 93 | +* temp 를 사용하지 않고 두 변수를 swap 한다. [code](src/test/java/exercise/NoTempSwapTest.java) |
| 94 | +* 어느날의 월, 일을 입력받아 요일을 반환하는 함수를 구현한다. [code](src/test/java/exercise/CalenderExample.java) |
| 95 | +* 주어진 배열에서 합이 최대가 되는 sub array의 합을 구한다. [code](src/test/java/exercise/FindMaxSumInArray.java) |
| 96 | +* 주어진 두 수 사이에 존재하는 수 중 제곱수가 되는 것을 구한다. [code](src/test/java/exercise/FindSquareNum.java) |
| 97 | +* 주어진 배열로 구성된 링크드 리스트의 길이를 구한다. [code](src/test/java/exercise/LinkedListLength.java) |
| 98 | +* 주어진 배열에서 두 자리수만 골라서 합한 값을 return 한다. [code](src/test/java/exercise/OnlyTwoDigitSum.java) |
| 99 | +* 각각의 주사위들이 모두 같은 면을 보이기 위한 최소 rotate 횟수를 구한다. [code](src/test/java/exercise/SameFaceDice.java) |
100 | 100 |
|
101 | 101 | ### Famous Algorithm |
102 | | -* Karp_Rabin_Algorithm [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/famous_algorithm/Karp_Rabin_Algorithm.java) |
103 | | -* KMP_Algorithm [code](https://github.com/JaeYeopHan/algorithm_basic_java/blob/master/src/test/java/famous_algorithm/KMP_Algorithm.java) |
| 102 | +* Karp_Rabin_Algorithm [code](src/test/java/famous_algorithm/Karp_Rabin_Algorithm.java) |
| 103 | +* KMP_Algorithm [code](src/test/java/famous_algorithm/KMP_Algorithm.java) |
104 | 104 |
|
105 | 105 | </br> |
106 | 106 |
|
|
0 commit comments