🥞 BE
home

2164_카드2

담당자
완료 여부
Solved
요약
날짜
2024/06/02
태그
기초
난이도
S4
출처
백준

처음 코드

import sys input = sys.stdin.readline n = int(input()) card = [] for i in range(1, n+1): card.append(i) while True: card.pop(0) card.append(card.pop(0)) if len(card) == 1: break print(card[0])
Python
복사
값은 맞게 잘 푼거 같은데 자꾸 시간초과가 났다. 왜일까…
→ 리스트 자료형을 사용해서 큐를 구현하다보니 그런거였다. 양방향 삽입&출력이 가능한deque를 사용해야하는걸 고려하지 못했다.

수정 코드

from collections import deque n = int(input()) card = deque(range(1, n+1)) while len(card) > 1: card.popleft() card.append(card.popleft()) print(card[0])
Python
복사

문제 해결 아이디어

큐를 활용해 인덱스를 다루는 문제는 deque자료형을 불러와서 구현하자. list는 무조건 시간초과 날듯하다.