Algorithm_basic
기본적인 알고리즘을 정리한 Repository 입니다. 모든 코드는 test
디렉토리에 존재하며 주제별로 나뉘어 있습니다. 알고리즘 코드들은 java로 작성되었습니다
Algorithm basic List
String basic part
- 주어진 문자열을 int 형으로 변환한다. code
- 주어진 문자열을 역순으로 출력한다. code
- 주어진 문자열에서 문자열을 구성하고 있는 각각의 문자열들이 고유한지를 판단한다. code
- 주어진 문자열이 애너그램인지를 판단한다. code
- 주어진 문자열을 길이와 함께 적어주면서 압축을 한다. code
- 주어진 문서(단어별로 나뉘어진 배열)에서 특정 단어의 빈도를 구한다. code
Basic Math
- 주어진 두 수의 최대 공약수와 최소 공배수를 구한다. code
- n개의 서로 다른 원소 중 r개의 원소를 순서없이 선택하는 방법의 수를 구한다. code
- 주어진 수보다 작은 소수의 개수를 구한다. code
- Fibonacci 를 계산하는 함수를 작성한다. code
- 주어진 정수의 각 자리 수의 합을 구한다. code
- 사다리를 한 칸 또는 두 칸씩 오를 수 있다고 했을 때 사다리 높이에 따른 사다리 오르기 방법의 경우의 수를 구한다. code
Recursion part
- 주사위로 이동 가능한 경우의 수를 모두 구한다. code
- n비트의 모든 경우의 수를 출력한다. code
- 순열을 구한다. code
- N개 괄호로 만들 수 있는 모든 조합 출력하기. code
DataStructure
LinkedList
- 첫번째 원소를 제거한다.
- 중복된 원소를 제거한다.
- 역순으로 출력한다.
- k번째 원소를 찾는다.
- 회문인지 판단한다.
code
Stack
- Array를 사용하여 Stack을 구현한다. code
- ArrayList를 사용하여 Stack을 구현한다. code
- Stack에 저장된 값들 중 최소값을 반환하는 minStack() 함수를 구현한다. code
- Stack 자료구조를 사용하여 회문을 판별한다. code
- 괄호의 유효성을 체크한다. code
Queue
BinaryTree
- 바이너리 트리에서 최대값을 구한다.
- 주어진 바이너리 트리가 균형 잡힌 트리인지 판별한다.
- 오름차순으로 정렬된 배열을 Binary Search Tree로 변환한다.
- 주어진 트리가 BST인지 확인한다.
code
Priority Queue
Sort and Search
- bubble sort를 구현한다. code
- Insertion sort를 구현한다. code
- Selection sort를 구현한다. code
- Quick sort를 구현한다. code
- radix sort를 구현한다. code
Search
bit
알고리즘 문제 풀어보기
Dynamic Programming
- Jump game code
Exercise
- 주어진 배열에서 양 쪽의 합이 동일해지는 index의 값을 구한다. code
- n!의 결과값에서 0의 개수를 구한다. code
- temp 를 사용하지 않고 두 변수를 swap 한다. code
- 어느날의 월, 일을 입력받아 요일을 반환하는 함수를 구현한다. code
- 주어진 배열에서 합이 최대가 되는 sub array의 합을 구한다. code
- 주어진 두 수 사이에 존재하는 수 중 제곱수가 되는 것을 구한다. code
- 주어진 배열로 구성된 링크드 리스트의 길이를 구한다. code
- 주어진 배열에서 두 자리수만 골라서 합한 값을 return 한다. code
- 각각의 주사위들이 모두 같은 면을 보이기 위한 최소 rotate 횟수를 구한다. code