2강 자료구조와 알고리즘

치즈말랑이·2022년 3월 20일
0
post-thumbnail

https://www.youtube.com/playlist?list=PLsMufJgu5933ZkBCHS7bQTx0bncjwi4PK

외대 신찬수 교수님께서 유튜브에 올려주신 강의를 들으며 자료구조와 알고리즘에 대해 공부하려고 한다.
코테 문제를 풀때 너무 베이스없이 푸는거같아서 백그라운드 지식이 필요하다고 느꼈다.
강의자료는 교수님께 메일드리면 주신다.


자료는 저장공간에서 연산되는 것들이고 자료를 담는 구조이기 때문에 자료구조라고 한다.
알고리즘은 (자료구조의 데이터를)입력을 가지고 유한한 횟수의 연산들을 반복해서 어떤 정답을 출력하는것이 알고리즘이다.

우리가 알고 있는 대표적인 자료구조는 변수, 배열 등이다.
a = 5 에서 =는 쓰기연산, print(a)에서 print는 읽기연산이다.
접근, 읽기,쓰기, 삽입, 삭제와 같은 연산들이 있고
a에 5를 저장할때 a에 5라는 객체를 저장하는것이 아니고 5가 들어있는 객체를 생성한 다음 이 객체의 주소를 a에 저장하는 것이다.

인류 최초의 알고리즘은 GCD(Greatest Common Divisor)라는 최대공약수를 계산하는 알고리즘이다.
gcd(8, 12)가 있으면 큰수에서 작은수를 빼서 결국 어느 한 수가 0이될때까지 만들고, 0이 된다면 큰수가 최대공약수(gcd)가 된다.
그런데 이것을 자세히 보면 큰수를 작은수로 나눈것의 나머지가 마지막에 남는것을 알 수 있다. (큰수와 가장 가까운 작은수의 배수를 빼는것과 같으므로)
그래서 gcd는 빼기, 나누기, 재귀 등 다양한 종류의 알고리즘으로 구할 수 있다.

profile
공부일기

0개의 댓글