TIL 11.09

새양말·2022년 11월 9일
0

내일배움캠프TIL

목록 보기
3/74
post-thumbnail

알고리즘세계에 이제 입문했다...!
시간이 적게 걸리는 코드란 입력값N의 길이만큼 몇 번 실행되는지에 따라 달라지는데,

예를 들면

    for num in array:              # array 의 길이만큼 아래 연산이 실행
        for compare_num in array:  # array 의 길이만큼 아래 연산이 실행
            if num < compare_num:  # 비교 연산 1번 실행
                break
        else:
            return num

array의 길이만큼 실행했다면 N*N = N^2 이다
지수형태는 N이 커지면 기하급수적으로 증가하므로 시간이 엄청! 오래걸린다고 보면 된다.

하지만

		for num in array:      # array 의 길이만큼 아래 연산이 실행
		    if num > max_num:  # 비교 연산 1번 실행
		        max_num = num  # 대입 연산 1번 실행

위와 같은 경우엔 array를 1번 돌 동안 비교연산과 대입연산을 하는 것이기 때문에 시간은 N+N =2N 걸린다고 보면 된다.
지수형태에 비하면 상수값의 영향은 미미하므로
시간이 적게 걸리는 코드를 작성하고 싶다면 array를 최대한 적게 돌도록 하면 된다.

(+ 그런데 현업에선 weight 즉 상수N에서 상수값은 의미있다고 합니다.)

profile
매번 기합넣는 양말

0개의 댓글