거누의 개발노트

[항해] 알고리즘 2주차 회고 (자료구조-알고리즘) 본문

CS

[항해] 알고리즘 2주차 회고 (자료구조-알고리즘)

Gogozzi 2022. 5. 29. 12:44
반응형

이번주도 마찬가지로 시간이 너무 빠르다. ( 매번 시간이 빨라서 이 말 밖에 안나온다...ㅎ )

어느정도 적응이 된건지 아니면 쉬운 문제를 푸는건지 몰라도 조금씩 늘어가고 있는건 보인다. ( 그래도 다행이다. 사실 첫주차 불안했다. )

이번주차부터 TIL을 꼬박꼬박 써서 수월하게 적을 수 있을 것 같다.

1일차

1일차는 트리와 이진트리에 대해서 배웠다.

https://geonoo.tistory.com/106

 

자료구조/알고리즘 - 이진트리(1)

트리란? 뿌리와 가지로 구성되어 거꾸로 세워놓은 나무처럼 보이는 계층형 비선형 자료 구조이다. 큐(Queue)와 스택(Stack)은 자료구조에서 선형 구조라고 한다. 선형 구조란 자료를 구성하고 있는

geonoo.tistory.com

2일차

이진 탐색 트리의 검색, 삭제, 삽입에 대해서 배웠고 global 변수와 nonlocal 변수의 차이에 대해서 공부했다.
이 날은 문제를 잘 못풀었던 기억이 있다. 이때 문제를 다시 복습하는 과정을 거치는것도 좋을것 같다.

https://geonoo.tistory.com/110 

 

자료구조/알고리즘 - 이진트리(2)

이진 탐색 트리란? 이진탐색과 연결리스트(linked list) 를 결합한 자료구조의 일종이다. 이진탐색의 효율적인 탐색 능력을 유지하면서도, 빈번한 자료 입력과 삭제를 가능하게끔 고안됐다. 부모

geonoo.tistory.com

3일차

힙에 대해서 배웠다. 힙은 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리이다!

그리고 heapq 모듈 사용법도 익혀둔 날이다!

아마 이날은 heapq 모듈로 수월하게 풀어서 기분이 좋은 상태였을 것이다.

https://geonoo.tistory.com/115?category=1075791 

 

자료구조/알고리즘 - 힙

힙? 힙은 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리(Complete Binary Tree) 힙은 항상 큰 값이 상위 레벨에 있고 작은 값이 하위 레벨에 있도록 하는 자료구조이다. 다시

geonoo.tistory.com

4일차

버블정렬, 선택정렬, 삽입정렬을 배웠다.

정렬들을 내손으로 집접 구현해 보았고, 문제에도 적용시켜 봤다.

그리고 내장 함수 sort에 대해서도 정확히 사용할 수 있게 되었다.
cmp_to_key 나 lamda를 이용해서 내가 원하는 정렬방식으로 정렬할 수 있게 되었다.

그리고 zip() 함수도 쓸수 있게 되었고, 항해톡도 구경했던 날이었다.

https://geonoo.tistory.com/116?category=1075791 

 

자료구조/알고리즘 - Bubblesort, Selectionsort, Insertionsort

정렬? 엑셀이나 문서작성 프로그램을 사용한 사람이라면 데이터를 오름차순 혹은 내림차순으로 정렬 해본적이 있을 것이다. 정렬이란 데이터의 집합을 어떠한 기준(핵심항목, key)으로 기준의

geonoo.tistory.com

5일차

퀵정렬, 병합정렬, 힙정렬을 배웠다.

마찬가지로 내가 혼자 구현할 수 있도록 연습했다. 아직 연습이 부족한 것 같다. 시간내서 한번씩 다 구현해보는 시간을 가져야겠다.

이날은 조금 늘어지는 날이였던 기억이 난다. 시간관리를 잘 못해서 혼자 죄책감 가지고 있던...;;

결국은 3시까지 공부하고 자긴 했다.

CS 발표 준비도하고 프로그래머스 문제 쉬운걸로 몇문제 풀다보니 시간이 훌쩍 흐르긴 했다.

https://geonoo.tistory.com/123

 

알고리즘과 선형알고리즘

파이만 알고리즘 1. 문제를 적는다. 2. 골똘히 생각한다. 3. 답을 적는다. 이 세상의 어떠한 어려운 문제도 해결할 수 있게 해 주는 우주 최강의 무적 알고리즘이라고 설명하고 있다. 일단 보면 너

geonoo.tistory.com

https://geonoo.tistory.com/122?category=1075791 

 

자료구조/알고리즘 - Quicksort, Mergesort

Quicksort 분할 정복(Divide and Conquer)을 통해 주어진 배열을 정렬하는 알고리즘입니다. 배열에서 기준(pivot)을 잡고, 기준보다 값이 작은 집합과 큰 집합으로 나눕니다(Divide). 그리고 그 사이에 기준

geonoo.tistory.com

6일차

이진 탐색에 대해서 배웠다. 정렬된 자료 기준, 선형 탐색은 시간복잡도가 O(N) 나오는데, 이진탐색은 O(logN) 이 나와서 1억번 할걸 26번만 해도 되는 놀라운 탐색이었다.

처음에 접긴하기가 그렇게 쉽지는 않았다. 이진트리를 이해하고 있어야 했고, 새로운 모듈도 공부해야 했다.

bisect라는 파이썬 라이브러리를 사용해서 이진탐색을 할 수 있고, 실제로 구현하는 과정도 연습해 봤다.

https://geonoo.tistory.com/128

 

자료구조/알고리즘 - 이진탐색 (1)

이진탐색? 배열이 정렬되어있을 경우, 절반씩 줄여나가면서 탐색하는 기법 1억 개 목록을 선형탐색할 때, 1억 번을 연산해야 한다. 이진탐색으로 찾는다면, 27번 안에 찾을 수 있다. import math math.l

geonoo.tistory.com

회고

알고리즘 2주차가 지나니까 어느정도 항해도 그렇고 알고리즘도 그렇고 한 계단씩 올라가고 있는것 같다.

그리고 알고리즘은 이번주가 마지막 주이다.

처음에는 과정이 너무 어렵고 힘들다고 생각했는데 마지막 주가 되니까 이제야 감이 잡혀가는 것같다.

 

공부하는 감이라도 잡은게 다행이라는 생각이 문득 들었다.

항해 오기전에는 공부한 방법도 몰랐다.

어떡해 해야 효율적으로 공부할 수 있을까 시간을 많이 투자한다고 효율이 올라가는게 아니라는건 누구나 알고있을 것이다.

항해에서 새로운 사람들을 만나면서 다른 사람들이 공부하는 방식을 적용해 보면서 감을 잡은 것 같다.

 

이번주는 어떤 일이 있을까 기대된다. 그러기에 오늘을 잘 마무리해 보자!

반응형
Comments