패스트캠퍼스/딥러닝·인공지능Signature초격차패키지Online

패스트캠퍼스 환급챌린지 10일차 : Part1 딥러닝을 시작하기전에 강의 후기

EveryDay.DevUp 2025. 3. 14. 15:06

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://bit.ly/4hTSJNB

 

커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스

성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.

fastcampus.co.kr

Ch02-01 자료구조

1) 자료 구조의 정의

- 다수의 자료를 담기 위한 구조로, 데이터의 수와 크기가 커질 수록 효율적인 자료구조가 필요함

2) 자료 구조의 종류

- 선형 구조 : 배열, 연결 리스트, 스택, 큐, 덱과 같이 하나의 데이터 뒤에 다른 데이터가 하나 존재하며, 일렬로 연속적, 순차적으로 연결되어있는 데이터구조를 말함

- 비선형 구조 : 트리, 그래프와 같이 하나의 데이터 뒤에 다른 데이터가 다수 존재할 수 있는 데이터 구조를 말함

3) 자료 구조의 성능 측정 방법

- 시간 복잡도 : 알고리즘에 사용되는 연산 횟수를 측정

- 공간 복잡도 : 알고리즘에 사용되는 메모리양을 측정

4) 빅오 표기법

- 복잡도를 표현할 때 사용하는 방법으로, 시간 복잡도를 표기할 때 큰 항의 계수만 표기 (3n + 2) => O(n) 으로 표기함

- 공간을 나타낼 때는 MB로 표기

Ch02-02/03 배열, 연결리스트

1) 배열 

- 여러개의 변수를 담는 공간으로 메인 메모리에 배열은 연속적으로 할당 됨

- 장점

: 캐시히트 가능성이 높고, 데이터의 조회가 빠름

- 단점

: 배열의 크기를 미리 지정하기 때문에, 데이터의 추가 삭제시에 부하가 발생함

2) 연결 리스트

- 데이터와 포인트를 하나의 노드로 정의하고, 각 노드를 포인터를 통해 연결하는 형태의 자료구조

- 장점

: 데이터의 추가 삭제가 용이

- 단점

: 데이터를 조회할 때는 첫 노드부터 시작하여 조회할 노드까지 선형 탐색을 하기 때문에 O(n)만큼의 시간이 필요

Ch2-04 파이썬의 리스트

- 파이썬의 리스트는 동적 배열이고, 내부적으로는 포인터를 사용하여 연결리스트의 장점을 가지고 있음

Method 시간 복잡도 설명
arr[index] O(1) 리스트에서 인덱스에 해당되는 데이터 가져오기
arr[index]=x O(1) 리스트에서 인덱스에 값 할당
arr.append(x) O(1) 리스트에 뒤에 데이터 넣기
arr.pop() O(1) 리스트에 가장 뒤에 데이터 가져오기
length() O(1) 리스트에 길이 가져오기
clear() O(1) 리스트 모든 원소 제거
arr[a:b] O(b-a) 리스트에서 a~b-1까지의 데이터로 새로운 리스트 생성
arr.extend(arr2) O(len(arr2)) arr2에 데이터를 arr1에 추가하기
arr.insert(index,x) O(n) arr에 index위치에 x 데이터 추가
arr.delete(index) O(n) arr에 index위치 삭제
arr = list(arr2) O(len(arr2)) arr2로 리스트 생성
x in arr O(n) arr에 x가 있는지 확인
x not in arr O(n) arr에 x가 없는지 확인
arr.pop(index) O(n) arr에서 index에 있는 데이터 꺼내기
arr.remove(x) O(n) arr에서 x의 값 제거
arr.copy O(n) arr 리스트 복사하기
min(arr),max(arr) O(n) arr에서 최소, 최대 값 가져오기
for x in arr O(n) 리스트 순회
arr * k O(n * k) 리스트를 k번 반복하여 리스트 생성
arr.sort O(n) 리스트 원소 정렬