emrhssla
612
2022-04-19 00:04:02
2
339

파이썬 max함수 시간복잡도



        def check(arr):
            n = len(arr)
            max_number = 1
            for i in range(n):
                cnt = 1
                for j in range(1, n):
                    if arr[i][j] == arr[i][j-1]:
                        cnt += 1
                    else:
                        cnt = 1
                    max_number = max(cnt, max_number)


                cnt = 1
                for j in range(1, n):
                    if arr[j][i] == arr[j-1][i]:
                        cnt += 1
                    else:
                        cnt = 1
                    max_number = max(cnt, max_number)
            return max_number



위와 같이 최대값을 계산하는 로직이 있을때

`max_number = max(cnt, max_number)` 대신 아래처럼 if 문을 사용하면 시간복잡도가 더 줄어드나요?

max를 이용했을때는 시간초과가뜨고 if문을 사용할땐 시간초과없이 통과해서 질문드립니다..

if cnt > max_number:
                max_number = cnt
0
  • 답변 2

  • anydog
    1k
    2022-04-19 01:10:56

    시간복잡도는 동일하게 O(1)입니다.

    max를 쓸 때 시간초과가 나는게 분명한가요?

  • allinux
    2k
    2022-04-19 02:00:12

    당연히 if문이 max함수보단 빠르고 max 함수내에는 로직이 있겠지요

    아래 코드에서 min_max 코드를 참조해보세요.

    https://github.com/python/cpython/blob/main/Python/bltinmodule.c


  • 로그인을 하시면 답변을 등록할 수 있습니다.