23882 알고리즘 수업 - 선택 정렬 2 - Python

2024. 8. 6. 00:52공부/📝 백준

1. 풀이 코드

change_count = 0

N, K = map(int, input().split(' '))
num_list = list(map(int, input().split(' ')))

i = 0
is_search = False

while True:
    target_num = num_list[N-1-i]
    if N-1-i == 0:
        break
    next_max_num = max(num_list[:N-1-i])
    if target_num < next_max_num:
        temp_index = num_list.index(next_max_num)
        num_list[temp_index] = target_num
        num_list[N-1-i] = next_max_num
        change_count += 1
    i += 1
    if change_count == K:
        print(' '.join(map(str, num_list)))
        is_search = True
        break
if not is_search:
    print(-1)

  

 

2. 다른 사람 풀이 코드

a, b = map(int, input().split())
lst = list(map(int, input().split()))

count = 0

for i in range(a-1, 0, -1):
    max_index = lst.index(max(lst[:i+1]))
    if max_index == i:
        continue
    else:
        lst[i], lst[max_index] = lst[max_index], lst[i]
        count += 1

    if count == b:
        print(*lst)
        break

if count < b:
    print(-1)

'공부 > 📝 백준' 카테고리의 다른 글

26150 Identify, Sort, Index, Solve - Python  (0) 2024.08.06
1384 메시지 - Python  (0) 2024.08.06
1120 문자열 - Python  (0) 2024.08.04
11365 !밀비 급일 - Swift  (0) 2024.07.30
11365 !밀비 급일 - C  (0) 2024.07.29