🧑💻 [Python] 백준 1083 소트
Gold 5 - 그리디
문제풀이
- 최대한 제일 큰 숫자가 앞으로 와야 한다
- 숫자의 움직임에 제한이 있다
- 일단
swap
만큼의 숫자들을 슬라이스를 통해 슬라이스 안에 제일 큰 숫자를 가지고 온다 - 그리고 i까지, 뒤로 그 큰 숫자를 앞으로 가지고 온다
- 이것을
swap
이 0이 될때까지 반복을 한다
코드
N = int(input())
array = list(map(int, input().split()))
swap = int(input())
for i in range(N):
max_num = max(array[i : i + swap + 1])
max_num_index = array.index(max_num)
for j in range(max_num_index, i, -1):
array[j - 1], array[j] = array[j], array[j - 1]
swap -= max_num_index - i
if swap <= 0:
break
print(' '.join(map(str, array)))
'알고리즘 > 그리디' 카테고리의 다른 글
[Python] 백준 25418 정수 a를 k로 만들기 (0) | 2023.02.10 |
---|---|
[Python] 백준 12931 두 배 더하기 (1) | 2023.02.01 |
[Python] 백준 2212 센서 feat. Shark_상어 (2) | 2023.01.29 |
[Python] 백준 1783 병든 나이트 (0) | 2023.01.29 |
[Python] 백준 1026 보물 (0) | 2023.01.27 |