๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm/๋ฐฑ์ค€

[๋ฐฑ์ค€] 1083 ์†ŒํŠธ(ํŒŒ์ด์ฌ/python)

by chjcoder 2023. 8. 27.

๐ŸŽˆ๋ฌธ์ œ

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)

๐ŸŽ„์ฝ”๋“œ ์„ค๋ช…

์ฃผ์„์œผ๋กœ ์„ค๋ช…์€ ๋Œ€์ฒดํ•œ๋‹ค.