-
[n514] 필수적인 자료 구조AI 부트캠프 2022. 1. 21. 09:52
파이썬의 리스트
- 자료구조의 기본은 배열이라 할 수 있고, 파이썬에서는 리스트와 튜플로 구현할 수 있다.
- 리스트나 튜플의 핵심은 인덱스를 사용하는 것이다.
# 리스트 인덱싱/슬라이싱 예시 example = [10, 20, 30, 40, 50] print('example[0:3] 결과:', example[0:3]) print('example[::2] 결과:', example[::2]) print('example[0:1:3] 결과:', example[0:1:3]) print('example[-3] 결과:', example[-3]) print('example[-3:-1] 결과:', example[-3:-1])
example[0:3] 결과: [10, 20, 30]
example[::2] 결과: [10, 30, 50]
example[0:1:3] 결과: [10]
example[-3] 결과: 30
example[-3:-1] 결과: [30, 40]Big O 표기법(notation)
[시간 복잡도] 알고리즘 복잡도 표현 방법
복잡도가 필요한 이유 하나의 문제를 푸는 다양한 방법이 있는데, 어떤 방법이 더 효율적인지 확인하기 위해 필요하다. 알고리즘 복잡도 계산 항목 시간 복잡도 : 알고리즘 실행 속도 공간 복잡
da-journal.com
- 알고리즘 실행 효율성을 측정하기 위한 알고리즘 계산 복잡도
- 시간 복잡도 : 최악의 케이스일 때 실행 시간을 측정.
- 공간 복잡도 : 필요한 메모리 공간을 측정. 최근에는 하드웨어 고성능으로 인해서 중요도가 낮아졌다. 거의 사용하지 않는다.
- Contanst Time(상수시간) : O(1) - 입력 값에 상관 없이 한번 실행 하는 경우
def print_one_item(items): print(items[1]) # 상수시간(단순하게 하나의 출력) print_one_item([0,1,2])
- Linear Time(선형시간) : O(n) - 입력 값에 따라서 실행 시간도 증가한다.
def print_every_item(items): for item in items: # 하나의 반복문 print(item) print_every_item([0,1,2])
- Quadratic Time(제곱시간) : O(n^2)
def print_pairs(items): for item_one in items: # 중첩반복문 for item_two in items: print(item_one, item_two) print_pairs([0,1,2])
'AI 부트캠프' 카테고리의 다른 글
[n522] Data Structure (2) (0) 2022.01.26 [n521] Data Structure (0) 2022.01.25 [n513] 파이썬 with OOP (0) 2022.01.20 [n512] 파이썬을 활용한 문제 해결 (0) 2022.01.19 [n511] Python Programming (0) 2022.01.18