현제의 현재이야기
[백준/python] 2346 -풍선터뜨리기 본문
from collections import deque
n = int(input())
a = list(map(int, input().split()))
a = deque(a)
number = [
i + 1
for i in range(n)
]
number = deque(number)
results = []
pointer = 0
for i in range(n):
pointer = a[0]
a.popleft()
pop = number.popleft()
results.append(str(pop))
if pointer >= 0:
a.rotate(-(pointer - 1))
number.rotate(-(pointer - 1))
elif pointer < 0:
a.rotate(-(pointer))
number.rotate(-(pointer))
print(' '.join(results))
| 알고리즘
- 받은 리스트에 해당되는 번호 인덱스 하나 생성
- 우선 받은 리스트의 첫번째 요소를 포인터로 지정하고 받은 리스트에서 해당 리스트 popleft
- 똑같이 해당되는 숫자 리스트도 popleft하고 그걸 result 리스트에 삽입
- 그리고 나서 포인터 만큼 로테이트 하는데 첫번째 풍선 터뜨리고 로테이트 돌리기 때문에 pointer에 -1을 하고 돌린다. # pointer에 -를 붙이는 이유: 돌리는 방향이 달라서
'algorithm' 카테고리의 다른 글
[백준/python] 16918 - 봄버맨 (0) | 2022.06.25 |
---|---|
[백준/python] 17952 - 과제는 끝나지 않아 (0) | 2022.06.25 |
[백준/python] 17827 - 달팽이리스트 (0) | 2022.06.25 |
[백준/python] 11866 - 요세푸스 문제 (0) | 2022.06.25 |
[백준/python] 1021 - 회전하는 큐 (0) | 2022.06.25 |
Comments