O(n^2)의 시간복잡도를 가지는 비교적 간단한 정렬에는 선택, 버블, 삽입, 셸 정렬 등이 있다. (오름차순 정렬 시)주어진 배열에서 가장 작은 수를 찾아 첫 번째 수와 교환하고,두 번째 작은 수를 찾아 두 번째 수와 교환하고, ...⁙ 제자리 정렬(사용되는 추가 저
(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)⁙ combinations함수가 바로 tuple형태를 반환하는 것이 아니고 해당 자료형의 객체를 반환한 다는 것을 알고 있으면 좋을 것 같습니다.개인적인 생각으로 재귀를 이용할 때는 재귀
복잡한 문제를 간단한 여러 개의 하위 문제로 나눠서 해결하는 알고리즘을 말한다. 최적 부분 구조(Optimal structure)와 부분 문제 반복(Overlapping subproblems)을 만족하는 문제에서 동적 프로그래밍을 사용하면 효율적으로 문제를 해결할 수