알고리즘
-
javascript로 알고리즘 풀 때 유용한 메소드를 정리해보자알고리즘 2020. 5. 10. 02:09
내일 우아한테크캠프 코딩 테스트가 있다. (카카오에 이어 이틀 연속 코테,,) 우아한테크캠프는 웹프론트앤드 개발자를 위한 캠프여서 코딩 테스트에서 언어는 javascript만 사용할 수 있다! 😕 오마이갓. 나에게 javascript는,, 가깝고도 먼 존재인 것 같다. 사용을 꽤 해본 것 같긴한데, 그냥 다른 언어 쓰듯이 사용한 느낌..? 알고리즘을 풀 때 메소드를 잘 쓰는것도 매우 중요하므로, 유용한 메소드를 한번 정리해보겠다. 💁♀️ forEach for문과 같이 반복문을 수행하지만 index, 조건식, increase가 필요없고, callback 함수로 기능을 수행한다. const arr = [0, 1, 2, 3, 4, 5]; arr.forEach(element => console.log(elem..
-
Kruskal 알고리즘알고리즘 2020. 5. 3. 18:59
Programmers의 Greedy Kits 중 [섬 연결하기] 문제를 풀다가 좋은 방법이 없을까? 해서 찾게된 알고리즘. Kruskal 알고리즘이란? Greedy method를 이용하여 가중치를 간선에 할당한 그래프의 모든 정점을 최소 비용으로 연결하는 최적 해를 구하는 알고리즘 👉 Greedy method: 결정을 해야 할 때마다, 그 순간에 가장 좋다고 생각하는 것을 선택하며 최종적인 해답에 도달하는 것. 반드시 검증이 필요하다. 👉 최소 비용 신장트리 만드는 법: 1) 최소 비용의 간선으로 구성되며, 1) 사이클을 포함하지 않음의 조건에 근거해서 각 단계에서 사이클을 이루지 않는 최소 비용 간선을 선택. Kruskal 알고리즘의 동작 1. 그래프들의 간선들을 가중치의 오름차순으로 정렬 ..
-
BFS 알고리즘알고리즘 2020. 4. 17. 17:53
점점 알고리즘을 풀 일이 더 많아지면서, 이제 구글링을 하지 않고 내 블로그를 보면서 공부하기 위해 정리하는 알고리즘 포스트! (서론이 길다 🐶) 알고리즘 중에서도 정말 중요하고, 많은 문제를 해결할 수 있는 BFS 알고리즘이 첫번째 알고리즘 포스팅이닷 - BFS (Breath-First Search) BFS는 너비 우선 탐색 즉, 루트 노드에서 시작해서 인접한 노드를 먼저 탐색하는 알고리즘이다. 앞만 보고 직진하는 DFS(Depth-First Search)와 비교하면 천천히 탐색하면서 세력을 넓혀가는 느낌이랄까..? 이 알고리즘을 사용해야하는 문제는? 두 노드 사이의 최단 경로 혹은 임의의 경로를 찾고 싶을 때 많이 사용한다. 문제 예시 백준 - 1697번 숨바꼭질 https://www.acmicpc...