Python은 아래와 같은 데이터 타입을 지원한다. 문자열(str) : "This is String" 리스트(list) : [1, 2, 5, 7] 사전(dict) : {'a': 6, 'bc': 4} 순서쌍(tuple), 집합(set) 등
기본적인 데이터 타입만으로 해결하기 어려운 문제를 해결하기 위해 자료구조를 알아야 한다
import time
n = int(input("Number of elements: "))
stack = [d for d in range(n)]
timestamp = time.time()
maximum = max(stack)
elapsed = time.time() - timestamp
print("Maximum element = %d, Elapsed time = %.2f" % (maximum, elapsed))

리스트의 개수가 늘어날 수록 시간이 오래걸린다.
일반적으로 n개의 수가 늘어선 리스트에서 최대값을 찾는 효율적인 방법은 무엇일까? —> 이미 전문가들은 특정 작업에 효율적인 자료구조를 만들어오고 있다.
알고리즘(Algorithm)이란? [사전적 정의] 어떤 문제를 해결하기 위한 절차, 방법, 명령어들의 집합 [프로그래밍] 주어진 문제의 해결을 위한 자료구조와 연산 방법에 대한 선택
예) 100개의 아무 규칙없이 숫자가 늘어서 있으면, 원하는 수를 찾기 위해 최악의 경우 모든 수를 보게 된다. 그러나 수가 오름차순으로 정렬되어 있다면 찾기 쉬워진다 —> 해결하고자 하는 문제에 따라 최적의 해법은 서로 다르다. 이 선택을 어떻게 해야 하는냐를 알기 위해 자료구조를 이해해야 한다.