알고리즘 3

취업 회고1

입사한지 6개월이 더 지나고서야 올리는 게으른 사람의 취업 회고.. 설날을 맞아 짧고굵은 1년간의 취준 - 2달 인턴 - 전환의 이야기를 간단하게 풀어보려고 한다. 대학생 시절 나는 개발을 잘하고 좋아하는 학생이 아니었다. 오히려 못하고 피하고 싶어하던 학생이었다. 못하지만 해내고 싶어서 매번 방학마다 '윤성우의 열혈 C 프로그래밍'을 첫장부터 피고는 방학 마지막에 포인터에서 무릎꿇던 그런.. 개발은 못했지만 경험을 많이 쌓으려고 우당탕탕거렸던 4년이 지나고 (파란만장했던 4년간의 개꿀잼 이야기 to be continue 😆) 정말 준비가 하~~~나도 안된 채로 막학기를 맞아버렸다. 알고리즘은 커녕 제대로 쓸 줄 아는 언어 하나 없는 노답인 상태로. 이 때 고민이 정말 많았다. 대학원으로 피하고 싶다는 ..

bla bla 2022.02.01

Binary Search(이진탐색/이분탐색)

이진탐색이란? - 특정 데이터를 빠르게 검색할 수 있다. O(logN) - 정렬되어 있는 배열에서 사용 가능하다. 구현 코드 (Java) int binarySearch(int[] arr, int target, int start, int end){ //1. 이진탐색은 무조건 정렬된 배열에서 가능하다. Arrays.sort(arr); //2. 어떤 값을 기준으로 할지를 정하고, 초기값을 정한다. //이 예시에서는 매개변수로 받는걸로 한다. int mid = 0; //start가 end보다 커질때까지 반복 while(start

알고리즘 2021.04.25

다익스트라 알고리즘 (Dijkstra Algorithm)

다익스트라 알고리즘 (Dijkstra Algorithm) 다익스트라 알고리즘은 최단경로를 찾는 알고리즘이다. 최단경로 알고리즘 종류 다익스트라 벨만포드 플로이드 음의 가중치가 없을 때, 하나의 정점에서 나머지 모든 정점으로의 최단경로를 구할 때 사용된다. 다익스트라 알고리즘은 DP를 활용한다. DP가 가능한 이유 > 최단거리는 여러 개의 최단거리로 이루어져 있기 때문! 시간복잡도 V : 정점의 개수, E : 간선 개수 O(V^2) 우선순위큐 사용시 : O((V+E)logN) O(VlogN) : 미방문 노드 중 현재까지의 최단거리를 가지는 노드 찾기 O(ElogN) : 각 노드마다 이웃한 노드이 최단 거리를 갱신할 때 필요 변수 int[] distance // 최단 거리 저장 boolean[] visite..

알고리즘 2021.04.04