๊ฐ๋ฐ/๐ค ์๊ณ ๋ฆฌ์ฆ
baekjoon. 1083 ์ํธ [Gold V][python]
ttoance
2023. 6. 15. 09:00
https://www.acmicpc.net/problem/1083
N = int(input())
numList = list(map(int, input().split()))
S = int(input())
swipe = 0
while (swipe < len(numList)):
possibleMax = numList[swipe]
possibleMaxIndex = swipe
count = 0
# swipe ๋ค์๋ถํฐ S๋ฒ ํ์ ๋ด์์ ๊ฐ์ฅ ํฐ ์ซ์ ์ฐพ๊ธฐ
################
for i in range(swipe + 1, len(numList)):
# ํ์ ๋์ด๊ฐ์ผ๋ฉด ๋์ด๊ฐ
if (i - swipe) > S:
break
if numList[i] > possibleMax:
possibleMax = numList[i]
possibleMaxIndex = i
count = i - swipe
################
# swipe ํ ์ ์๋ค๋ฉด swipe
##################
if (S - count) >= 0 and count > 0 :
# print('check')
del numList[possibleMaxIndex]
numList.insert(swipe, possibleMax)
S = S - count
##################
swipe += 1
print(*numList)
์ฒ์์ฝ๊ณ ๋์๋ bubble sortํ๋ฉด ๋์ด๊ฒ ๋ค ํ๊ณ ํ์๋๋ฐ, ๊ทธ๊ฒ ์๋์๋ค.
5
1 2 3 4 5
4
์ด ์์์์ ๋ฌธ์ ๊ฐ ์ํ๋ ๋ต์ 5 1 2 3 4 ์ด๊ณ , bubble sort๋ก ํ๋ฉด 2 3 4 5 1 ์ด๋ค.
์๋ํ๋ฉด, '์ด๋, ์ํธํ ๊ฒฐ๊ณผ๊ฐ ์ฌ์ ์์ผ๋ก ๊ฐ์ฅ ๋ท์๋ ๊ฒ์ ์ถ๋ ฅํ๋ค.' ๋ก ๋์ด์๊ธฐ ๋๋ฌธ์ S๋ฒ ํ์ ๋ด์์ ์ด๋ํ ์ ์๋ ๊ฐ์ฅ ํฐ ์์ธ 5๊ฐ ๋งจ ์์ผ๋ก ๋์์ผ ํ๋ค.
runtime error ๋ฐ๋ก>
7
70 60 50 40 30 20 10
1
>> 70 60 50 40 30 20 10
1% ๋ฐ๋ก >
5
5 4 1 2 3
50
>> 5 4 3 2 1
์ฐธ๊ณ ํ์ด >
https://latte-is-horse.tistory.com/370
๋ฐ์ํ