๐๋ฌธ์
https://www.acmicpc.net/problem/1083
๐์๊ณ ๋ฆฌ์ฆ ๋ฐ ์ ๊ทผ
์ ๋ ฌ
1. "์ฌ์ ์์ผ๋ก ๊ฐ์ฅ ๋ท์๋ ๊ฒ" == ํฐ ์๊ฐ ์์ ์ฌ ์๋ก ์ฌ์ ์์ผ๋ก ๋ค์ชฝ์ด ๋๋ค. ๋ฐ๋ผ์ s์ ํ์์์ ์ต๋ํ ํฐ ์๋ฅผ ์์ผ๋ก ๋ณด๋ด์ค์ผ๋๋ค.
2. s์ ํ์๋ณด๋ค ๋ค์์๋ index์ ํฐ ์๋ ๋งจ ์์ผ๋ก ๋ณด๋ผ ์ ์๋ค.
ใ กใ กใ ก
์ ๊ทผ
1. a[0:s+1]๋งํผ ํ์ํ์ฌ ๊ฐ์ฅ ํฐ ์์ idx๋ฅผ ์ป์ด๋
2. ๊ฐ์ฅ ํฐ ์๋ฅผ a[0]์ผ๋ก ๋ณด๋ผ ๋ ๊น์ง Sort()
3. a[1:1+(s-sortํ์)+1]๋งํผ ํ์ํ์ฌ ๊ฐ์ฅ ํฐ ์์ idx๋ฅผ ์ป์ด๋
4. ๊ฐ์ฅ ํฐ ์๋ฅผ a[1]์ผ๋ก ๋ณด๋ผ ๋ ๊น์ง Sort()
๐ป์ ๋ต ์ฝ๋
# 1083 ์ํธ
n = int(input())
a = list(map(int,input().split()))
s = int(input()) # ๊ตํ ๊ฐ๋ฅ ํ์
i = 0
while s>0 and i<n:
# ์ต๋๊ฐ idx ์ป๊ธฐ, s๊ฐ n์ ๋์ด๊ฐ๋ฉด ์ค๋ฅ๋๋ฏ๋ก min(n,i+s+1)
idx = a.index(max(a[i:min(n,i+s+1)]))
if idx != i: # ์ต๋๊ฐ์ด i์๋ฆฌ์ ์ฌ๋๊น์ง ๊ตํํ๊ธฐ ์ํ ์ฝ๋
a[idx-1],a[idx] = a[idx],a[idx-1]
s -= 1 # sort ํ์ ์ฐจ๊ฐ
else: # ์ต๋๊ฐ์ด i์๋ฆฌ์ ์ค๋ฉด, ๋ค์ index์ ํฐ ๊ฐ์ ๋ณด๋ด์ฃผ๊ธฐ ์ํด i+=1
i += 1
print(*a)
๐์ฝ๋ ์ค๋ช
์ฃผ์์ผ๋ก ์ค๋ช ์ ๋์ฒดํ๋ค.
'Algorithm > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 14502 ์ฐ๊ตฌ์ (ํ์ด์ฌ/python) (0) | 2023.09.25 |
---|---|
[๋ฐฑ์ค] 8978 ์ฌ๋ฆผํฝ (ํ์ด์ฌ/python) (0) | 2023.09.18 |
[๋ฐฑ์ค] 2531 ํ์ ์ด๋ฐฅ(ํ์ด์ฌ/python) (0) | 2023.08.23 |
[๋ฐฑ์ค] 14940 ์ฌ์ด ์ต๋จ๊ฑฐ๋ฆฌ(ํ์ด์ฌ/python) (0) | 2023.08.21 |
[๋ฐฑ์ค] 17484 ์ง์ฐ์ ๋ฌ ์ฌํ(ํ์ด์ฌ/python) (0) | 2023.08.19 |