๐ฅ Silver3
https://www.acmicpc.net/problem/2346
โ ์ ๋ตํ์ด
import sys
from collections import deque
input=sys.stdin.readline
n=int(input())
notes=list(map(int,input().strip().split()))
#deck ์์ฑ (ํ์ ๋ฒํธ,note)
deck=deque((i+1,note) for i,note in enumerate(notes))
result=[]
#ํฐํธ๋ฆด ํ์ ์ ๋งจ์์ผ๋ก ๋ณด๋ด๊ณ ํฐ๋จ๋ฆฌ๊ธฐ
for _ in range(n):
#์ด๊ธฐ๊ฐ=1๋ฒ ํ์
ballon,dx=deck.popleft() #ํ์ ๋ฒํธ,์ด๋๊ฐ
result.append(ballon) #result=[1,4,5,3,2]
# โก๏ธ ๋ฐฉํฅ์ด๋ผ๋ฉด, ์ด๋ฏธ ํ์ ์ ํฐ๋จ๋ ธ๊ธฐ ๋๋ฌธ์ dx-1๋งํผ ์ด๋ํด์ผํ๋ค
if dx>0:
dx-=1
#dx๋งํผ ํ์ ์ด๋
deck.rotate(-dx)
print(' '.join(map(str, result)))
rotateํจ์์ ์กด์ฌ๋ฅผ ๋ชจ๋ฅด๊ณ ์์๊ธฐ ๋๋ฌธ์, dx๋งํผ ์ธ๋ฑ์ค๋ฅผ ๋ํ๊ณ , range ๋ฒ์ด๋ ๋๋ ์ ๊ฒฝ์จ์ผํ๊ณ ,
ํฐ๋จ๋ฆด ํ์ ์ ๋งจ์์ผ๋ก ์ฎ๊ฒจ์ ํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ ํ์ง ๋ชปํ๋ค...๐ฎ
๊ทธ๋์ ์ค๊ฐ์์ ๊บผ๋ด์ผํ๋ค๋ณด๋ ๊ทธ๋ผ queue๊ฐ ์๋๋ฐ..? ์ด์ง์ด์งํ๋ค
๋ถ์ก๊ณ ์๋ค๊ฐ ๊ฒฐ๊ตญ GPT์ ๋์์ ๋ฐ์๋๋ฐ, rotate์ ํฐ๋จ๋ฆด ํ์ ์ ๋งจ์์ผ๋ก ์ฎ๊ธฐ๋ฉด, ๊ฐ๋จํด์ง๋ค.
๐ก queue๋ ๋งจ์์์ ๊บผ๋ด๋ ์๋ฃ๊ตฌ์กฐ์์ ์ ๋ ํ๋ฉด์, ๋งจ์์ ๊ธฐ์ค์ผ๋ก ํ๋จํ๋ ๋ก์ง์ ์ง๋๋ก ํ์.
์ด์ ๋ฌธ์ ๋ค๋ ๋ค ๊ทธ๋ ๊ฒ ํ์ด์ผ ์ง๊ธ์ฒ๋ผ ์์ํ๋ค ๐ฃ
ํ์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํด์ผํ๊ธฐ ๋๋ฌธ์, ํ์ ๋ฒํธ์ ์ด๋ํด์ผํ ์๋ฅผ ํํ๋ก ๋ฌถ์ด์ deck์ ์์ฑํ๊ณ
์ฃผ์ด์ง ์กฐ๊ฑด์์ ๊ฐ์ฅ ํฐ์ง๋ ํ์ ์ 1๋ฒ ํ์ ์ด๋ฏ๋ก, popleft()๋ก ๋์จ ํ์ ๋ฒํธ, ์ด๋๊ฐ์ ์ด๊ธฐ๊ฐ์ผ๋ก ์ ์ํ๋ค.
ํ์ ์ ํฐ๋จ๋ ธ๋ค๋ฉด, ์ชฝ์ง์ ์จ์๋ ๊ฐ๋งํผ ์ด๋์ ํด์ฃผ์ด์ผํ๋๋ฐ, ์ด๋ rotate๋ฅผ ์ฌ์ฉํ๋ฉด ๊ต์ฅํ ํธ๋ฆฌํ๋ค.
ํ์ง๋ง, ๋ฐ๋๋ฐฉํฅ์ผ๋ก ์ด๋ํ๋ฏ๋ก ๋ถํธ(+/-)๋ฅผ ๋ณ๊ฒฝํด์ค์ผํ๋ค.
โ๏ธ๋ถํธ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ ์, โก๏ธ ๋ฐฉํฅ์ผ๋ก ์ด๋ํ๋ค๋ฉด ์ด๋ฏธ ํ์ ์ ํฐ๋จ๋ฆฌ๊ณ deck์์ ๊ฐ์ ์ ๊ฑฐํด๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์ ์ด๋๊ฐ-1์ ํด์ฃผ์ด์ผํ๋ค!
for๋ฌธ์ ์ํํ๋ฉด์ ๋ค์ ํ์ ์ rotate๋ฅผ ํตํด ๋งจ์์ผ๋ก ์ฎ๊ฒจ๋จ๊ธฐ ๋๋ฌธ์, popleft๋ก ๊ฐ์ ๊บผ๋ด๊ณ result์ ๋ฃ์ด์ฃผ๋ฉด๋๋นโจ
'๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค-Python] ํ์ ํ๋ ํ : 1021๋ฒ (0) | 2024.06.05 |
---|---|
[๋ฐฑ์ค-Python] ํ๋ฆฐํฐ ํ : 1966๋ฒ (0) | 2024.06.05 |
[๋ฐฑ์ค-Python] ์ค๋ชฉ : 2615๋ฒ (0) | 2024.06.04 |
[๋ฐฑ์ค-Python] ์ค์์น ์ผ๊ณ ๋๊ธฐ : 1244๋ฒ (1) | 2024.06.04 |
[๋ฐฑ์ค-Python] ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ : 1018๋ฒ (0) | 2024.06.03 |