BOJ2164. 카드2

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

  • 파이썬으로 냅다 풀었는데 바로 틀려버렸다. 파이썬의 List가 실제로 Linked List가 아니라는 점에 큰 충격을 받음.. 실제 구현은 pointer of array란다. 이러니 List처럼 될 줄알고 냅다 풀었더니 바로 틀려버렸다.
1
2
3
4
5
6
7
def main():
  N = int(input())
  arr = [x for x in range(1,N+1)]
  while len(arr) > 2:
    arr = arr[2:] + [arr[1]]
  print(arr[1])
main()
  • 진짜로 python에서 linked-list를 쓰려면 collections의 deque을 써야 한단다.
  • c로 deque을 써서 풀면 4ms만에 풀린다.
  • 복습: 더 쌈박한 풀이가 있는데 뭔가 실제로 리스트를 구성할 필요 없이 풀 수 있는 방식이 있는 모양이다.