#이코테 2021 with python
import time
'''
연산횟수가 5억을 넘어가는 경우
C언어 : 1-3초, 파이썬: 5-15초


시간제한이 1초인 문제를 만났을 때, 일반적인 기준은 다음과 같음.
N < 500: O(N^3)인 알고리즘을 설계하면 풀기 가능.
N < 2000: O(N^2)인 알고리즘을 설계하면 풀기 가능.
N < 100,000: O(NlogN)인 알고리즘을 설계하면 풀기 가능.
N < 10,000,000: O(N)인 알고리즘을 설계하면 풀기 가능.

알고리즘 문제 해결 과정
1. 지문 읽기 및 컴퓨터적 사고
2. 요구 사항(복잡도) 분석
3. 문제 해결을 위한 아이디어 찾기
4. 소스코드 설계 및 코딩
--> 대부분의 문제는 핵심아이디어를 캐치한다면 최대한 간결하게 소스코드를 작성할 수 있다.
--> 생각나는걸 바로 코딩하는 것 보다, 지문을 꼼꼼히 읽고 정리한 후에 하는게 더 빠르게 풀 수 있다.
'''
def getTimeComplexity():
    start_time = time.time()
    end_time = time.time()
    array = [3,5,1,2,4]
    sum = 0

    # O(N)
    for x in array:
        sum += x
    print(sum)

    # O(N^2)
    # 모든 2중 반복문이 O(N^2)는 아님. 소스코드가 다른함수를 호출한다면 그 함수의 시간 복잡도도 고려해야 한다.
    for i in array:
        for j in array:
            temp = i*j
            print(temp)



