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
๋ฐ์ํ
'๊ฐ๋ฐ > ๐ค ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
โก๏ธ baekjoon. 14501 ํด์ฌ [Silver III][python] (0) | 2023.06.28 |
---|---|
baekjoon. 1071 ์ํธ [Platinum V][python] (0) | 2023.06.22 |
์๊ณ ๋ฆฌ์ฆ ๊ฐ๋ . ์๋ฃ๊ตฌ์กฐ์์์ ํ๊ท ~ ์ต์ ์๊ฐ ๋ณต์ก๋ (0) | 2023.06.10 |
baekjoon. ํ์์ค ๋ฐฐ์ [Silver I] [python] (1) | 2023.06.08 |
์๊ณ ๋ฆฌ์ฆ ๊ฟํ. ํ์ด์ฌ (0) | 2023.06.01 |