Algorithm/Baekjoon

[Python] 2346. 풍선 터뜨리기

느낌표 공장장 2022. 1. 1. 21:07
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=' ') # 터진 풍선 위치 출력

 

포인터를 움직이는 방식으로 문제를 해결했다 !

* dequerotate() 를 이용하여 해결한 방식도 인상 깊었다. 

'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