문제가 궁금하다면?
내가 시도한 방법
- deque를 사용해서
- 맨 앞 장을 제거하고,
- 그 다음 장은 뽑아서 뒤에 다시 넣는다.
-> 언제까지??? 2장이 남을 때까지
(1장이 남았을 때 while문이 순회하면 삭제 연산이 2번 진행되어 IndexError가 발생)
from collections import deque
N = int(input())
q = deque()
q.extend(list(range(1, N+1)))
while len(q) >= 2:
q.popleft()
q.append(q.popleft())
print(q.popleft())
후기
- 일반적인 방법이라고 생각했는데 내 코드의 시간과 가장 시간이 적게 걸리 코드의 차이가 조금 있어서 어떻게 더 줄일 수 있을지 고민을 해봐야겠다. 고민을 하고 나서 그 다음에 다른 사람과의 코드와 내 코드의 차이점과 배울 점을 적어놔야겠다!