본문 바로가기

알고리즘

[Codewars] 빈 상자 * 빈 상자 책상 위 1 번 박스가 N 개 놓여있다.( N 은 2 이상 )책상 아래에는 2 번 박스 , 3 번 박스,...가 무한 개 있다.1 번 박스가 가장 크고 , 다음은 2 번 박스 , 3 번 박스 ...2 번 박스를 1 번 박스에 넣을 수 는 있지만 3 번 박스를 1 번 박스에 넣을 수는 없다. 즉 i 번 박스에는 i+1 번 박스 만을 넣을 수 있다.다음 과정을 T 번 반복한다. ■ 몇 개의 1 번 상자마다 2 번 상자 K 개를 집어 넣는다.■ 몇 개의 2 번 상자마다 3 번 상자 K 개를 집어 넣는다.■ 몇 개의 3 번 상자마다 4 번 상자 K 개를 집어 넣는다.■ ... 어떤 상자 안에 아무 것도 없으면 이 상자는 비어 있다고 한다. T번 과정을 반복 한 후 책상 위에는 F 개의 빈 상자가 있.. 더보기
[정렬] 큌정렬 (Quick Sort) * 퀵정렬 (Quick Sort) "전체 원소에 대해서 정렬을 수행하지 않는다" - Divide and Conquer (분할 정복) : 재귀적 구현 필요기준값(pivot) 을 중심으로 전체 원소들을 왼쪽 부분집합과 오른쪽 부분집합으로 분할(divide)기준값(pivot) 보다 큰 원소는 배열의 오른쪽, 기준값(pivot) 보다 작은 원소는 배열의 왼쪽으로 이동 - 실행 성능은 선택한 기준값(pivot) 에 의해 결정- 일반적으로 기준값(pivot) 은 전체 원소 중에서 가운데 위치한 원소를 선택 [시간 복잡도] * 최선의 경우, 평균의 경우 : O(nlogn)pivot 에 의해서 원소들이 왼쪽 부분집합과 오른쪽 부분집합으로 정확히 n/2개씩 이등분이 되는 경우가 반복* 최악의 경우 : O(n^2)pivo.. 더보기