키워드 : 이진 탐색, 최단 경로(다익스트라, 플로이드)
이진 검색 알고리즘(binary search algorithm)은 오름차순으로 정렬된 리스트에서 특정한 값의 위치를 찾는 알고리즘이다. 처음 중간의 값을 임의의 값으로 선택하여, 그 값과 찾고자 하는 값의 크고 작음을 비교하는 방식을 채택하고 있다. 처음 선택한 중앙값이 만약 찾는 값보다 크면 그 값은 새로운 최댓값이 되며, 작으면 그 값은 새로운 최솟값이 된다. 검색 원리상 정렬된 리스트에만 사용할 수 있다는 단점이 있지만, 검색이 반복될 때마다 목표값을 찾을 확률은 두 배가 되므로 속도가 빠르다는 장점이 있다.
음의 가중치가 없는 그래프의 한 정점(頂點, Vertex)에서 모든 정점까지의 최단거리를 각각 구하는 알고리즘(최단 경로 문제, Shortest Path Problem)이다.
플로이드-워셜 알고리즘(Floyd-Warshall Algorithm)은 그래프에서 가능한 모든 노드 쌍에 대해 최단 거리를 구하는 알고리즘이다.
시간복잡도는 O(V^3)이다. 다익스트라 알고리즘과는 달리 모든 노드 쌍에 대해 최단 거리를 구하고, 음의 가중치를 가지는 그래프에서도 쓸 수 있다.
쉬는날이지만 쉬는날이 아니다 ㅠㅠ
배운 것
리액트를 다시 열심히 배우는 중이다! 강의가 리뉴얼되어서 그나마 쉬워졌지만... 그치만 너무 길다... 코드스니펫 오류들이 많이 고쳐지고 스토리북 개념강의도 좋다!
느낀 것
잘 하는거랑 잘 가르치는건 다르다는거!저어번에 수강후기에도 남긴 것 같지만 강의 설계에 문제가 있습니다 튜터님 ㅠㅠ 근데 이래야 수강생들이 얼른 자립심을 길러서 성장할 수 있게 되는 것 같기도 하고.
간단히 써보자면! 어차피 프로젝트를 만들거라면 한번 쓰고 버리지 말고 미니 프젝을 여러개 하는게 좋고, 하나를 만들거라면 벽돌을 차근차근 쌓아서 집을 쨘 하고 보여줘야 하는데...
두 가지의 단점만 잘 모아놨다... 튼튼해야 할 메인프젝은 여러가지 방법을 소개하시느라 계속 만들고 부수고 만들고 부수고 해서 배운걸 기록할 수도 없고 주석을 달수도 없다. 왜냐면 전부다 뜯어고치시니까...
근데 개념 연습을 하기 위해 만드는 1강짜리 사이드 프젝들은 엄청 튼튼하게 지어놓고 진짜 1번 쓰고 버리신다. 설치하는데 10분씩 걸리고 용량도 엄청 먹는데...
강의 진행방식에도 문제가 있다. 물론 잘하는 사람은 허허벌판에 던져놔도 공식문서를 보고 따라가면 되지만 처음 하는 사람에게는 어느정도 제한을 하고 방향성을 제시해주셔야 하는데 길에 있는 모든 걸 설명하시고 시도해 주신다...
가장 큰 문제는 그렇게 다른 길로 가면서 이거저거 타이핑하고 설명하시다가 아주 편안하게 급커브를 돌아서 1초만에 정답을 치시고 다음거로 넘어가신다는거...!
열심히 따라치고 있었는데 싹 지우고 따라 지우니까 사실 복사였습니다 쨘! 하면서 뒤에 붙여버리시고... 경험자가 아니라면 꽤 스트레스 받는다.
경험자라 다행이다...
앗 그치만 리뉴얼해서 정말 많이 나아졌다.
만약 시간이 많았다면 프로젝트를 복사 복사 복사해서 천천히 다 따라해보고 싶은 강의였다! 자바스크립트 기초 부분 보강해주신 것도 너무 좋았다.
내게 아쉬웠던 것
알고리즘 용어 정리를 다 끝내지 못하고 리액트로 넘어왔다.
안타깝... 그치만 이미 넘어왔으니까 지금은 리액트에 모든 걸 집중할 시간이다!