/algorithm_basic_java

☠️ This is a repository that summarizes the algorithmic problems that are mainly in coding interviews. It is written based on the Java language.

Primary LanguageJava

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

  • Stack을 사용하여 queue를 stack처럼 만든다. code
  • Stack 두 개로 Queue를 구현한다. code

BinaryTree

  • 바이너리 트리에서 최대값을 구한다.
  • 주어진 바이너리 트리가 균형 잡힌 트리인지 판별한다.
  • 오름차순으로 정렬된 배열을 Binary Search Tree로 변환한다.
  • 주어진 트리가 BST인지 확인한다.
    code

Priority Queue

  • Priority queue를 사용하여 heap sort를 하라. code
  • 많은 수 중 top 10을 구한다. code

Sort and Search

  • bubble sort를 구현한다. code
  • Insertion sort를 구현한다. code
  • Selection sort를 구현한다. code
  • Quick sort를 구현한다. code
  • radix sort를 구현한다. code

Search

  • binary search를 사용하여 O(log n)의 시간복잡도로 target을 찾는다. code
  • 정렬된 2차원 배열에서 검색한다. code

bit

  • 2의 제곱수인지 판별한다.
  • 두 수에서 다른 비트의 개수를 구한다.
    code
  • O(1)으로 해당 데이터가 존재하는지 판단한다. code


알고리즘 문제 풀어보기

Dynamic Programming

Exercise

  • 주어진 배열에서 양 쪽의 합이 동일해지는 index의 값을 구한다. code
  • n!의 결과값에서 0의 개수를 구한다. code
  • temp 를 사용하지 않고 두 변수를 swap 한다. code
  • 어느날의 월, 일을 입력받아 요일을 반환하는 함수를 구현한다. code
  • 주어진 배열에서 합이 최대가 되는 sub array의 합을 구한다. code
  • 주어진 두 수 사이에 존재하는 수 중 제곱수가 되는 것을 구한다. code
  • 주어진 배열로 구성된 링크드 리스트의 길이를 구한다. code
  • 주어진 배열에서 두 자리수만 골라서 합한 값을 return 한다. code
  • 각각의 주사위들이 모두 같은 면을 보이기 위한 최소 rotate 횟수를 구한다. code

Famous Algorithm

  • Karp_Rabin_Algorithm code
  • KMP_Algorithm code

LICENSE

크리에이티브 커먼즈 라이선스