본문 바로가기

알고리즘

(14)
[알고리즘] 효율적으로 소수를 구하는 방법 (Java 예제 포함) 소수란?소수는 1과 자기 자신 외에는 약수가 없는 자연수입니다. 즉, 1과 자기 자신만으로 나누어떨어지는 숫자를 말합니다.예시2, 3, 5, 7, 11 등은 소수입니다.4, 6, 8, 9, 10 등은 소수가 아닙니다. (다양한 약수를 가지고 있기 때문입니다.)약수란?약수는 어떤 수를 나누어떨어지게 하는 수를 의미합니다. 즉, 주어진 수를 나누었을 때 나머지가 0이 되는 수입니다.예시12의 약수: 1, 2, 3, 4, 6, 12소수를 구하는 알고리즘소수를 판별하기 위해서는 주어진 수가 약수를 몇 개 가지고 있는지 확인해야 합니다. 소수의 경우 약수가 1과 자기 자신만 있어야 합니다.기본적인 소수 판별다음 코드는 1부터 n까지의 모든 약수를 찾는 방법을 사용한 소수 판별 방법입니다.public class M..
[알고리즘] 삽입 정렬 InsertionSort 정렬 알고리즘이란?정렬 알고리즘은 배열의 원소들을 조건에 맞게 순서대로 정렬하는 알고리즘입니다. 원소들이 어떤 순서로 들어오는지에 따라 적절한 정렬 알고리즘을 선택할 수 있습니다.선택 기준시간 복잡도: 알고리즘이 실행되는 데 소요되는 시간공간 복잡도: 알고리즘이 사용하는 메모리의 양안전성 (Stability): 동일한 값의 원소들의 순서가 유지되는지 여부정렬 알고리즘 종류와 시간 복잡도정렬 알고리즘 종류최선 시간 복잡도평균 시간 복잡도최악 시간 복잡도BubbleSort (버블 정렬)O(n)O(n^2)O(n^2)SelectionSort (선택 정렬)O(n^2)O(n^2)O(n^2)InsertionSort (삽입 정렬)O(n)O(n^2)O(n^2)MergeSort (병합 정렬)O(n log n)O(n log..
[알고리즘] 선택 정렬 SelectionSort 정렬 알고리즘이란?정렬 알고리즘은 배열의 원소들을 조건에 맞게 순서대로 정렬하는 알고리즘입니다. 원소들이 어떤 순서로 들어오는지에 따라 적절한 정렬 알고리즘을 선택할 수 있습니다.선택 기준시간 복잡도: 알고리즘이 실행되는 데 소요되는 시간공간 복잡도: 알고리즘이 사용하는 메모리의 양안전성 (Stability): 동일한 값의 원소들의 순서가 유지되는지 여부정렬 알고리즘 종류와 시간 복잡도정렬 알고리즘 종류최선 시간 복잡도평균 시간 복잡도최악 시간 복잡도BubbleSort (버블 정렬)O(n)O(n^2)O(n^2)SelectionSort (선택 정렬)O(n^2)O(n^2)O(n^2)InsertionSort (삽입 정렬)O(n)O(n^2)O(n^2)MergeSort (병합 정렬)O(n log n)O(n log..
[알고리즘] 최소공배수 lcm 최소공배수(LCM) 구하기최소공배수(LCM, Least Common Multiple)는 두 수의 공통 배수 중에서 가장 작은 값을 의미합니다. 두 수의 배수는 각각의 수를 1, 2, 3, ... 등의 정수로 곱한 결과로 정의됩니다. 예를 들어, 숫자 4의 배수는 4, 8, 12, 16, ...이고 숫자 6의 배수는 6, 12, 18, 24, ...입니다. 이 두 숫자의 공통 배수 중 가장 작은 값은 12이므로 4와 6의 최소공배수는 12입니다.배수란?배수는 어떤 정수 n에 대해 2n, 3n, 4n ...과 같이 n의 배수 % n == 0인 숫자를 의미합니다. 예를 들어, 숫자 5의 배수는 5, 10, 15, 20, ...입니다.for문으로 최소공배수 구하기public static void main(Str..
[알고리즘] 최대공약수 gcd 최대공약수란?최대공약수(GCD, Greatest Common Divisor)는 두 개 이상의 수의 공통된 약수 중에서 가장 큰 값을 말합니다.약수란?약수는 어떤 정수 n을 나누었을 때 나머지가 0이 되는 수를 의미합니다. 예를 들어, 10의 약수는 1, 2, 5, 10입니다. 이 숫자들은 모두 10을 나누었을 때 나머지가 0이 됩니다.약수 구하기public static void main(String[] args) { int n = 10; for (int i = 1; i 위 코드는 1부터 n까지 반복문을 돌리면서 n을 i로 나누었을 때 나머지가 0인 숫자를 구하는 코드입니다.n과 m의 공통된 약수 구하기public static void main(String[] args) { int n = ..
[알고리즘] 버블 정렬 BubbleSort 정렬 알고리즘이란?정렬 알고리즘은 배열의 원소들을 조건에 맞게 순서대로 정렬하는 알고리즘입니다. 원소들이 어떤 순서로 들어오는지에 따라 적절한 정렬 알고리즘을 선택할 수 있습니다.선택 기준시간 복잡도: 알고리즘이 실행되는 데 소요되는 시간공간 복잡도: 알고리즘이 사용하는 메모리의 양안전성 (Stability): 동일한 값의 원소들의 순서가 유지되는지 여부정렬 알고리즘 종류와 시간 복잡도정렬 알고리즘 종류최선 시간 복잡도평균 시간 복잡도최악 시간 복잡도BubbleSort (버블 정렬)O(n)O(n^2)O(n^2)SelectionSort (선택 정렬)O(n^2)O(n^2)O(n^2)InsertionSort (삽입 정렬)O(n)O(n^2)O(n^2)MergeSort (병합 정렬)O(n log n)O(n log..