티스토리 뷰

백준

백준 2346 문제풀이 [python]

ys.k 2023. 8. 20. 15:36

포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.

문제를 보자.

정말 오래 걸렸다.

스트레스 또한 많이 받았다.
 
너무 안 풀려서 뭔가 이상하다는 느낌을 받았다.
 
그래서 rotate() 함수에 대해 여러 가지 수동작업 결과, 내 생각과 정반대로 동작하는 함수였다.
 
허탄 감과 안심이 동시에 찾아왔다.
 
나는 진짜로 내가 빡대가리인 줄 알았다.
 
코드

import sys as s
from collections import deque

n = int(s.stdin.readline())

queue = deque(range(1,n+1))

array = deque(map(int,s.stdin.readline().split()))

array2 = []    

while queue:
    a = array.popleft()
    b = queue.popleft()
    array2.append(b)
    if a > 0:
        array.rotate(-(a-1))
        queue.rotate(-(a-1))
    else:
        array.rotate(-a)
        queue.rotate(-a)
       
print(*array2)

 
배운 점
1. queue.rotate()를 통해 큐를 회전시킬 수 있다.
2. range()를 통해 범위를 입력해 줄 수 있다.

'백준' 카테고리의 다른 글

백준 15649 문제풀이 [python]  (0) 2023.08.22
백준 28279 문제풀이 [python]  (0) 2023.08.20
백준 11866 문제풀이 [python]*  (0) 2023.08.19
백준 2164 문제풀이 [python]  (0) 2023.08.19
백준 18258 문제풀이 [python]  (0) 2023.08.18
댓글