파이썬 언어 주의사항

  • 입력을 받을 때: sys.stdin.readline

    한 줄을 백만 번 입력 받는 것 보다, 백만 줄을 한 번 입력 받는 것이 더 빠르다. 출력도 마찬가지이므로, 개행문자를 포함한 문자열을 만들어서 한 번에 출력하자.

  • 시간 복잡도

    • List의 경우, len(list1) = N, len(list2) = K일 때

      • list1 = 1 + list1: O(N)

        새로운 리스트를 만들어서 재할당. 순서를 list1 + 1으로 바꿔 append와 동일 하게 만들어도 새로운 리스트를 만드는 것이므로 O(N)이다.

      • list1.append(1): O(1)

      • list = list1 + list2: O(N+K)

      • list1.extend(list2): O(K)

      • list1 += list2: O(K)

        +=를 알아서 extend로 수행, list2가 아니라 정수라면 append로 수행해 O(1)

  • 시간초과가 난다면 Pypy3를 사용하자.

Leave a comment