📈알고리즘/알고리즘
1주차 공부 과정
하얀성
2023. 3. 8. 16:46
알고리즘 강의는 c언어든, 자바든 언어는 상관없이 이론을 배우는 시간인듯 싶다.
자료구조를 선수구조라고 얘기해놨지만... 선수구조라기 보다는 그것들을 다시 처음부터 공부하면서 알고리즘을 새롭게 배우는 듯하다.
내가 js로 프로그래머스 풀면서 나온 문제들이 나와서 반가운데 그걸 예시로 잘 풀어서 설명해주시니 좋았다.
그래서 왜 복잡도가 그런지 이해하는 시간이었다.
난 js를 통해 테크트리를 올렸기 때문에 js를 통해 알고리즘을 이해하고자 애써보려고 한다.
<요약>
- 순차탐색(Sequential Search): 주어진 순서에 따라 차례로 탐색
- 이진탐색(Binary Search): 정렬된 항목들에 대해서 중간에 있는 항목을 비교하여 그 결과에 따라 같으면 탐색을 마치고, 다르면 작은 항목들이 있는 부분 또는 큰 항목들이 있는 부분을 같은 방식으로 탐색한다.
- 동전 거스름돈 문제에서 가장 액면이 높은 동전을 항상 선택(욕심내어 선택)한다. 그리디(greedy) 알고리즘
- 한붓그리기 문제는 오일러 서킷 문제와 같다. 알고리즘의 핵심은 현재 점에서 담음으로 이동 가능한 점을 선택할 때에는 반드시 현재 점으로 돌아오는 사이클이 존재하여야 한다는 것이다.
- 가짜 동전 찾기에서 동전 더미를 반으로 분할하여 저울에 달고, 가짜 동전이 있는 더미를 계속해서 반으로 나누어 저울에 단다. 이는 분할 정복(Divdie-and-Conquer) 알고리즘의 일종이다.
- 독이 든 술단지 문제는 2진수를 활용하여 그 해를 찾는다.
따라 적어본 이유는 개념에 대한 파악이 정보처리기사를 쳐보니 생각보다 중요했고, 헷갈렸기 때문이다.
그리고 영어 표현 방식도 좀 더 눈에 발라두기 위함이다.