λ°μν
Idea.
λ°°μ΄ μ¬μ©. (μΈλ±μ€ κ°μ νμ κ°μ§κ³ μμΌλ λΉ λ₯΄κ² νμ κ°λ₯νλ€κ³ μκ°.)
νμ΄(μ΄λ»κ² μ κ·Ό νκ³ μ΄λ€ κ²μ΄ μ€μνλ?)
μ λ ₯λ°μ 리μ€νΈ μΈμ μΈλ±μ€ 리μ€νΈλ νμ κ°μ΄ κ΄λ¦¬ν΄μ κ²°κ³Όμ μ²μ λλ‘ μΈλ±μ€λ₯Ό λ΄μ μ μκ² νλ€.
νμ μ μ«μμ λ°λΌ λ€μ μΈλ±μ€ κ°μ μ νλ€.
νμ μ μ«μκ° μμμ΄λ©΄ μΈλ±μ€μ νμ μ μ«μλ₯Ό λν ν 리μ€νΈμ κΈΈμ΄λ‘ λλλ©΄ λ€μ μΈλ±μ€κ° λμ¨λ€.
νμ μ μ«μκ° μμμ΄λ©΄ μΈλ±μ€μ νμ μ μ«μμμ 1μ λΊ κ²μ λν ν 리μ€νΈμ κΈΈμ΄λ‘ λλλ©΄ λ€μ μΈλ±μ€κ° λμ¨λ€.
λμ¨ μΈλ±μ€λ‘ κ°±μ νκ³ λ 리μ€νΈ λͺ¨λ pop ν΄μ μ²λ¦¬νλ€.
리μ€νΈμ κΈΈμ΄κ° 0μ΄ λ λκΉμ§ λ°λ³΅νλ€.
ꡬν μ½λ
N = int(input())
list_N = list(map(int, input().split()))
list_index = []
result = []
for i in range(1,N+1):
list_index.append(i)
idx = 0
k = list_N.pop(idx) # k λ νμ μ μ«μ
result.append(list_index.pop(idx))
while(len(list_N) > 0):
if(k < 0):
idx = (idx+k) % len(list_N)
else:
idx = (idx+(k-1))%len(list_N)
k = list_N.pop(idx)
result.append(list_index.pop(idx))
for j in range(N):
print(result[j], end=" ")
λ°μν
'CodingTest' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Python]λ°±μ€ 1935 ::νμνκΈ°μ (0) | 2021.05.12 |
---|---|
[Python]λ°±μ€ 1406 ::μλν° λ¬Έμ νμ΄ (0) | 2021.05.12 |
[Python]λ°±μ€ 1158 ::μ‘°μΈνΌμ€ λ¬Έμ νμ΄ (0) | 2021.05.12 |
[Python]λ°±μ€11286::μ λκ° ν λ¬Έμ νμ΄ (0) | 2021.05.04 |
[Python]λ°±μ€ 5397::ν€λ‘κ±° νμ΄ (0) | 2021.05.04 |
λκΈ