본문 바로가기

알고리즘/백준알고리즘

[백준 알고리즘/Python3] 2164 카드뽑기

문제이해 

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))

 

 

파이썬 deque 라이브러리에 관해 참고

728x90