
하나의 문제를 푸는 방법은 다양함 → 어느 방법이 더 좋은지 판단하기 위해서 복잡도가 필요함 → 가장 빨리 풀리는 알고리즘을 좋다고 판단할 수 있기 때문에 시간 복잡도가 가장 많이 사용됨
if n>10:
print (n)
#2번: O(1)
variable = 1
for index in range(n):
printf(index)
#n+1번: O(n)
variable = 1
for num in range(3):
for index in range(n):
printf(index)
#3n+1번 -> 상수에는 별로 관심없음: O(n)
variable = 1
for num in range(n):
for index in range(n):
printf(index)
#n^2+1번: O(n^2)
1)
def sum_all(n):
total = 0
for i in range(1,n+1):
total += i
return total
#더하는 과정을 n번 반복: O(n)
2)
//n(n+1)/2 활용
def sum_all(n):
return int(n*(n+1)/2)
#반복문 없이 한 줄의 계산식만 진행: O(1)
→ 이 경우, 후자의 알고리즘이 시간 복잡도 측면에서 더 좋은 알고리즘이라고 볼 수 있음