-
[백준] 1083 - 소트 (파이썬)알고리즘/백준 2022. 2. 21. 18:20
n = int(input()) array = list(map(int,input().split())) s = int(input()) def findMaxIdx(start,end): for i in range(start,end+1): if max(array[start:end+1]) == array[i]: return i def changeIdx(maxIdx,targetIdx): array[targetIdx:maxIdx+1] = [array[maxIdx]] + array[targetIdx:maxIdx] return maxIdx-targetIdx for i in range(n): idx = findMaxIdx(i,i+s) s -= changeIdx(idx,i) if s == 0: break print(*array)
s의 값이 닿는 한에서 최댓값의 인덱스를 찾고 앞으로 보내는 방식으로 해결하였다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 11279 - 최대 힙 (파이썬) (0) 2022.02.22 [백준] 1303 - 전쟁-전투 (파이썬) (0) 2022.02.22 [백준] 10159 - 저울 (파이썬) (0) 2022.02.17 [백준] 15954 - 인형들 (파이썬) (0) 2022.02.16 [백준] 1497 - 기타콘서트 (파이썬) (3) 2022.02.14