문제이해
deque를 만들어서 한쪽으로 버리고, 뒤로 넣는 과정을 deque의 길이만큼 반복해야 한다고 생각 했습니다.
파이썬의 deque 라이브러리를 사용하고
popleft()와 rotate(-1)를 써서 한번은 왼쪽으로 나가게 하고 한번은 오른쪽으로 삽입을 해주었습니다.
코드
from collections import deque
input_num = int(input())
#deque 만들기
def make_deq(num):
deq = deque()
for i in range(1, num+1):
deq.append(i)
return deq
#카드 하나를 버리고 하나는 뒤로 넣기
def mix_card(deq):
for _ in range(len(deq)):
result = deq.popleft()
deq.rotate(-1)
return result
deq = make_deq(input_num)
print(mix_card(deq))
728x90
'알고리즘 > 백준알고리즘' 카테고리의 다른 글
[백준 알고리즘/Python3] 9093 단어 뒤집기 (0) | 2021.12.18 |
---|---|
[백준 알고리즘/Python3] 15649 N과 M(1) (0) | 2021.12.10 |
[백준 알고리즘/Python3] 1085 직사각형에서 탈출 (0) | 2021.12.06 |
[백준 알고리즘/Python3] 1085 직사각형에서 탈출 (0) | 2021.12.05 |
[백준 알고리즘/Python3] 9020 골드바흐의 추측 (0) | 2021.12.03 |