Koala - 7기/코딩테스트 준비 스터디

[백준 / Python] 2164번 카드2

skdus8784 2022. 8. 7. 20:19

https://www.acmicpc.net/problem/2164

[문제 해석]

본 문제는 큐를 사용해 푸는 문제로, N장의 카드를 입력해 1~N의 수를 큐에 입력하여, Q를 주어진 조건에 맞게 pop, push를 활용해 푸는 문제이다.

 


[소스코드]

from collections import deque

N = int(input())
deque = deque([i for i in range(1, N+1)])

while(len(deque) >1):
    deque.popleft()
    move_num = deque.popleft()
    deque.append(move_num)
    
print(deque[0])

 


[문제 해결]

deque를 사용하여, deque의 배열 길이가 1보다 클 때 반복하도록 한다.

가장 왼쪽에 있는 원소를 리턴하고, 다음 왼쪽에 있는 원소를 move_num에 저장한 후 그 원소를 deque 배열에 추가한다.

그 후에 반복문이 끝나면 deque에서 0번째 원소를 출력하도록 한다.

 

 

원문 : https://www.acmicpc.net/problem/2164