diff --git "a/1\354\243\274\354\260\250/2750.py" "b/1\354\243\274\354\260\250/2750.py" new file mode 100644 index 0000000..0f0bcc7 --- /dev/null +++ "b/1\354\243\274\354\260\250/2750.py" @@ -0,0 +1,27 @@ +# O(N^2)의 시간복잡도를 하기 위해 선택정렬 코드 + +# A개의 정수를 입력 +A = int(input()) + +# 입력된 정수를 저장할 빈 리스트 A_list를 초기화시키기 +A_list = [] + +# A번 반복하여 정수를 사용자로부터 입력받고 A_list 리스트에 저장 +for i in range(A): + num = int(input()) + A_list.append(num) + +# 선택 정렬을 이용하여 리스트를 정렬 +for i in range(A): + # 현재 위치부터 나머지 원소 중에서 최솟값의 인덱스 찾기 + min_index = i + for j in range(i + 1, A): + if A_list[j] < A_list[min_index]: + min_index = j + + # 현재 위치의 원소와 최솟값의 원소를 교환 + A_list[i], A_list[min_index] = A_list[min_index], A_list[i] + +# 정렬된 리스트를 출력 +for i in A_list: + print(i) diff --git "a/1\354\243\274\354\260\250/2751.py" "b/1\354\243\274\354\260\250/2751.py" new file mode 100644 index 0000000..243790d --- /dev/null +++ "b/1\354\243\274\354\260\250/2751.py" @@ -0,0 +1,39 @@ +# O(n log n)의 시간 복잡도를 위해 quick_sort 함수 사용 +def quick_sort(arr): + if len(arr) <= 1: + return arr + + # 피벗 원소를 선택 + pivot = arr[len(arr) // 2] + + # 피벗보다 작은 원소들 (왼쪽) + left = [x for x in arr if x < pivot] + + # 피벗과 같은 원소들 (가운데) + middle = [x for x in arr if x == pivot] + + # 피벗보다 큰 원소들 (오른쪽) + right = [x for x in arr if x > pivot] + + return quick_sort(left) + middle + quick_sort(right) + +# 사용자로부터 요소의 개수인 A를 입력받기 +A = int(input()) + +# 사용자 입력을 저장할 빈 리스트를 초기화 +A_list = [] + + +# A개의 정수를 사용자로부터 입력받고 A_list에 저장 +for i in range(A): + num = int(input()) + A_list.append(num) + +# quick_sort 함수를 사용하여 리스트를 정렬 +A_list = quick_sort(A_list) + +# 정렬된 리스트 출력 +for i in A_list: + print(i) + +