[23881번] 알고리즘 수업 - 선택 정렬1

황성미·2023년 7월 28일
0

백준

목록 보기
5/6
post-custom-banner


import sys

N, K = map(int, sys.stdin.readline().split())
nums = list(map(int, sys.stdin.readline().split()))

def find_max_index(arr, n):
    max_index = 0
    for i in range(1, n):
        if arr[i] > arr[max_index]:
            max_index = i
    return max_index

def selection_sort_descending(arr):
    count = 0
    answer = -1
    n = len(arr)

    for i in range(n - 1, 0, -1):
        max_index = find_max_index(arr, i + 1)
        #기존 선택정렬 코드에 아래 print()문을 출력하여
        #값의 교환과 교환되는 수들이 저장되는 부분을 찾았고
        #그 부분에 출력 조건을 추가해주었다:)
        #print(arr)
        #print(f'{arr[i]}, {arr[max_index]}')
        if arr[i] != arr[max_index]:
            count += 1

            if count == K:
                answer = f'{arr[i]} {arr[max_index]}'
        arr[i], arr[max_index] = arr[max_index], arr[i]
    print(answer)

selection_sort_descending(nums)

profile
데이터 분석가(가 되고픈) 황성미입니다!
post-custom-banner

0개의 댓글