백준_2164 (카드2_큐 뼈대문제_pop, del 주의)

RostoryT·2022년 6월 22일
0

Stack Queue

목록 보기
12/17

이 문제의 경우,

list(=stack)으로 풀면 시간초과 판정을 받을 수 있음


(중요) .pop()이나 del을 사용할 경우, for문 조건에 해당 배열이나 큐가 들어가면 에러발생!!!

풀이 1

from collections import deque
import sys

n = int(sys.stdin.readline())
que = deque([i for i in range(1,n+1)])


while que:
    if len(que) > 1:
        que.popleft()
    else:
        print(que[0])
        break        
    que.append(que.popleft())

풀이 2 - 시간 좀 더 빠름

from collections import deque

N = int(input())
deque = deque([i for i in range(1, N+1)])  # 데크 생성

while len(deque) > 1:
    deque.popleft()
    deque.rotate(-1)      # 음수일 경우 왼쪽으로 숫자만큼 이동
    
print(deque[0])

profile
Do My Best

0개의 댓글