n = int(input()) # 풍선의 개수
papers = list(enumerate(map(int, input().split()))) # 풍선 안의 종이에 적혀 있는 수
p = 1 # 터트릴 지점을 가르키는 포인터
move = 0 #
while n:
p += move # 포인터 움직이기
# 포인터 인덱스에 맞추기
if move < 0: # 음수일때
p %= n
else: # 양수일때
p = (p - 1) % n # 터진 풍선 고려해서 -1 해주기
idx, move = papers.pop(p) # 풍선 터뜨리기 (풍선 위치, 터진 풍선에 들어있는 종이)
n -= 1 # 풍선개수 -1
print(idx + 1, end=' ') # 터진 풍선 위치 출력
포인터를 움직이는 방식으로 문제를 해결했다 !
* deque
의 rotate()
를 이용하여 해결한 방식도 인상 깊었다.
'Algorithm > Baekjoon' 카테고리의 다른 글
[Python] 1311. 할 일 정하기 1 (0) | 2022.01.12 |
---|---|
[Python] 14719. 빗물 (0) | 2022.01.01 |
[Python] 9252. LCS2 (0) | 2022.01.01 |
[Python] 11723. 집합 (0) | 2022.01.01 |
[Python] 1238. 파티 (0) | 2022.01.01 |