본문 바로가기

Programming/Algorithm

(2)
[알고리즘]카운팅 정렬 (Counting Sort) 알고리즘 카운팅 정렬 알고리즘은 최댓값과 입력 배열의 원소 값 개수를 누적합으로 구성한 배열로 정렬을 하는 알고리즘이다. 작동 방식을 아래에 두가지 예제에서 확인해보자 Counting Sort Visualization www.cs.usfca.edu 위에 카운팅 정렬 사이트를 가서 Couting Sort 버튼을 클릭하면 보이는 방법이 더 정확한 정렬 방법을 확인할수가 있다. 중복되는 무작위 값을 가진 입력 배열이 있다 (단 배열 최대값은 9까지만 존재) 먼저 배열에 원소 값들의 갯수를 저장하는 배열 (카운팅 배열)을 생성한다. 각 원소 값들의 갯수를 카운팅해서 카운팅 배열에 저장을 해준다. 카운팅 배열에 각 요소들에 대해서 직전 요소들의 값을 더해준다. (누적합) 입력 배열과 동일한 크기의 출력 배열을 다시 만들어..
[알고리즘]에라토스테네스의 체 (소수 찾기) 에라토스테네스의 체는 소수를 찾는 알고리즘이다. 고대 그리스 수학자 에라토스테네스가 발견하여 에라토스테네스의 체라고 불려온다. 보통 프로그래밍에서 소수를 구하는 여러가지 방법이 있는데 아래와 같이 for문을 중첩사용하여서 현재 숫자가 1 그리고 자기 자신이외에 값으로 나누어 지는지 확인하고 나누어 떨어지지 않으면 소수로 판명한다. // 예제 소수의 갯수를 구하는 코드 int n = int.Parse(Console.ReadLine()); int[] num = Array.ConvertAll(Console.ReadLine().Split(), int.Parse); for(int i = 0; num.Length > i; i++) { if(num[i] == 1) { n--; continue; } for(int k ..