2022. 7. 4. 18:32ใ๐ฑ Algorithm/Else
https://www.acmicpc.net/problem/2346
ํต์ฌ
์ด ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํ ์ ์๋ ํต์ฌ์ deque() ์๋ฃํ์ rotate()
๋ฉ์๋๋ค.
rotate(n)๋ deque ์ ๋ด์ฅํจ์๋ก, n ์ด ์์๋ฉด ์ฐ์ธก์ผ๋ก, ์์๋ฉด ์ข์ธก์ผ๋ก ํ์ ํ๋ค๊ณ ๋ณผ ์ ์๋ค.
์ฝ๋
import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
q = deque(enumerate(map(int, input().split())))
ans = []
while q:
idx, paper = q.popleft()
ans.append((idx + 1))
if paper > 0:
q.rotate(-(paper - 1))
else:
q.rotate(-paper)
print(' '.join(map(str, ans)))
"""
5
3 2 1 -3 -1
"""
ํ์ด
๋ฌธ์ ์์ ์ป๊ณ ์ ํ๋ ๊ฒ์ ์ข ์ด์ ๋ฒํธ๊ฐ ์๋๋ผ, ํ์ ์ ์์น (์ธ๋ฑ์ค) ๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ์ ์ ์ธ๋ฑ์ค๋ฅผ ์ฐ์ ans ๋ฆฌ์คํธ์ ์ ์ฅํ ์ ์๋๋ก ์ ๋ ฅ์ ๋ฐ์์ผ ํ๋ค.
enumerate()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด, (index, value)
ํํ๋ก ๋ฆฌ์คํธ๋ฅผ ์์ฑํ ์ ์๋ค.
q = deque(enumerate(map(int, input().split())))
์ด์ ์ข ์ด์ ์ซ์๊ฐ ์์ / ์์ ๋์ ๋ฐ๋ผ ํ์ ๋ฐฉํฅ์ ๋ถ๊ธฐํ๋ฉด ๋๋ค.
๊ธฐ์กด์ ํ์ ์ ํฐ๋จ๋ฆฌ๊ณ paper ์ ์ซ์๋งํผ ์์ง์ฌ์ผ ํ๊ธฐ ๋๋ฌธ์
paper ๊ฐ ์์์ผ ๋ (paper - 1)
์ฒ๋ฆฌ ํ์ ์ธ๋ฑ์ค๋ฅผ ์ด๋,
paper ๊ฐ ์์ ์ผ ๋, paper
๋งํผ ์ข์ธก์ผ๋ก ํ์ ์ํค๋ฉด ๋๋ค.
'๐ฑ Algorithm > Else' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 1895 ํํฐ ํ์ด์ฌ (1) | 2022.12.21 |
---|---|
๋ฐฑ์ค ์์ด 2559๋ฒ ํ์ด์ฌ (0) | 2022.07.12 |
๋ฐฑ์ค 16953 ํ์ด์ฌ (0) | 2022.01.25 |
๋ฐฑ์ค 2003 ํ์ด์ฌ (0) | 2022.01.07 |
๋ฐฑ์ค 10830 ํ์ด์ฌ (0) | 2021.12.26 |