-
2346 덱 rotate코테 대비 python/백준 2023. 2. 2. 16:42
https://www.acmicpc.net/problem/2346
2346번: 풍선 터뜨리기
1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선
www.acmicpc.net
from collections import deque n=int(input()) #딕셔너리에 키와 벨류 값을 넣어야 겠다. value = list(map(int, input().split())) ballon = dict() for _ in range(n): ballon[_+1] = value[_] #덱에 풍선들을 넣어야 겠다 왜??? => 값에 따라서 왼쪽 오른쪽 #pop()오른쪽 제거 popleft()왼쪽제거 #종이에 0은 적혀있지 않으므로 음수면?, 양수면? queue = [ i+1 for i in range(n)] queue = deque(queue) #### rotate 사용 while queue: if len(queue) ==1: a = queue.popleft() print(a,end='') else: a = queue.popleft() print(a,end=' ') if ballon[a] > 0: queue.rotate(-ballon[a]+1) else: queue.rotate(-ballon[a]) #### #### 문자열을 이용해 deque를 만들면 각 문자가 요소로된 리스트 형태의 deque가 만들어진다!! ####
공부하면서 알게된 사실인데
문자열을 deque로 만들면 알아서 분해됨
'코테 대비 python > 백준' 카테고리의 다른 글
1874 스택==> 다시풀기 (0) 2023.02.03 2800 스택 ==> 다시풀어보기 (0) 2023.02.02 10872 재귀 (0) 2023.02.02 15651 N과 M (0) 2023.01.31 5622 문자열 (0) 2023.01.31