알고리즘(Python)

[Python] 시간복잡도, 공간복잡도

Gayeon 2021. 7. 8. 22:24

시간 복잡도

시간 복잡도

  • 파이썬은 1초에 2천만번 정도의 연산을 한다고 생각하면 됨.
  • N의 범위가 1,000,000인 경우 : O(logN)인 알고리즘을 설계하면 문제를 풀 수 있다.
  • in 시간복잡도는 자료형에 따라 다름!
    • list, tuple : O(n) - 하나하나 순회함
    • set, dictionary : O(1) ~ O(n) - hash를 통해 저장하므로 접근시간은 O(1). (단, 해쉬의 충돌이 많아 성능이 떨어지는 경우 O(n)이 걸릴 수도 있음.)
    • 결론은 리스트말고 dictionary 쓰면 더 짧으니 추천!

 

공간 복잡도

  • 보통 코딩테스트에서 128~512MB로 제한.
  • int의 경우 약 리스트 길이가 100만개일때, 4MB
  • 즉, 128MB일때 3200만개, 256MB일때 6400만개, 512MB일때 1억2800만개 사용가능.

int의 메모리 사용량

 

- 참고 : 나동빈, 이것이 취업을 위한 코딩테스트다 with 파이썬

'알고리즘(Python)' 카테고리의 다른 글

[Python] 자주쓰는 라이브러리, 함수 정리  (0) 2021.07.08