본문 바로가기

알고리즘 강의

[알고리즘 강의] 파트1, 파트2 정리

파트1. 어서와! 자료구조와 알고리즘을 왜 배워야 하는지 알려줄게

파이썬의 datatype

- 문자열(str)
- 리스트(list)
- 사전(dict)
- 순서쌍(tuple), 집합(set),...

알고리즘이란?

- 사전적 정의: 어떤 문제를 해결하기 위한 절차, 방법, 명령어들의 집합
- 프로그래밍: 주어진 문제의 해결을 위한 자료구조와 연산 방법에 대한 선택


파트2. 선형 배열(Linear Array)

- 배열: 원소들을 순서대로 늘어놓은 것

- index가 존재 (0,1,2...)

리스트(배열) 연산

(1) 원소 덧붙이기 .append()

 

(2) 끝에서 꺼내기 .pop()

순식간에 (빠르게) 할 수 있는 일

→ 리스트의 길이와 무관(상수 시간) -> O(1)

 

(3) 원소 삽입하기

L=[20,37,58,72,91]

L.insert(3,65) #3번째 인덱스에 65 삽입

 

(4) 원소 삭제하기

del(L[2])

→ 리스트의 길이가 길면 오래 걸리는 일

→ 리스트의 길이에 비례 (선형 시간) -> O(n)

삽입 인덱스 이후의 값들을 한칸씩 다 미루고 제거 인덱스 이후의 값들을 한칸씩 앞으로 당기는데 시간이 걸린다.

 

(5) 원소 탐색하기

L.index("Spam")

 

 

 

* 프로그래머스의 '어서와! 자료구조와 알고리즘은 처음이지?' 강의를 듣고 정리하였습니다.