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

거북이·2023년 8월 22일
0

백준[브론즈1]

목록 보기
3/4
post-thumbnail

💡문제접근

  • 일반적인 선택 정렬 알고리즘으로 풀었다가 문제의 의사 코드를 다시 참고해서 작성했다.

💡코드

import sys
input = sys.stdin.readline

N, K = map(int, input().strip().split())
array = list(map(int, input().strip().split()))
cnt = 0

def selection_sort(array):
    global cnt
    # 가장 큰 수 A[i]를 찾는다.
    for i in range(len(array) - 1, 0, -1):
        is_swapped = False
        max_index = i
        for j in range(i-1, -1, -1):
            if array[max_index] < array[j]:
                max_index = j
                is_swapped = True
        # max_index와 i가 서로 다르면 A[max_index]와 A[i]를 교환
        if max_index != i:
            array[i], array[max_index] = array[max_index], array[i]
            cnt += 1
        if cnt == K:
            print(array[max_index], array[i])
            sys.exit(0)
    print(-1)

selection_sort(array)

💡소요시간 : 37m

0개의 댓글