분류 전체보기 83

최단 경로 알고리즘(플로이드워셜 알고리즘)

다익스트라 알고리즘 '한 지점에서 다른 특정 지점까지의 최단경로' 플로이드워셜 알고리즘 '모든 지점에서 다른 모든 지점까지 최단 경로를 모두 구해야 하는 경우' 플로이드 워셜 알고리즘은 단계마다 거쳐가는 노드를 기준으로 알고리즘을 수행한다. 따라서 O(N^3)의 시간복잡도를 가진다. [***모든 노드에서 다른 모든 노드까지]***의 최단 경로를 모두 계산한다. Floyd - Warshall 알고리즘은 다익스트라 알고리즘과 마찬가지로 “단계별로 거쳐가는 노드를 기준”으로 알고리즘을 수행한다. 다만, 매 단계마다, “방문하지 않은 노드 중” “최단 거리를 갖는 노드 찾기” 과정이 필요하지는 않다. 2D 테이블에, [최단 거리 정보]를 저장한다. 왜냐하면 [모든 노드] —> [모든 노드] 까지의 최단 경로를 ..

알고리즘/GRAPH 2021.12.20

최단 경로 알고리즘(다익스트라 알고리즘, 파이썬)

가장 빠른길 찾기 ? 한 지점에서 다른 특정 지점까지의 최단경로를 구해야 하는 경우를 뜻한다. 크게 세가지가 있다. 1) 다익스트라 알고리즘 2) 벨만 포드 알고리즘 3) 플로이드 워셜 알고리즘 가장 중요한 것은 다익스트라 알고리즘과 플로이드 워샬 알고리즘이다. 두가지만 파악을 해도 코딩테스트 수준에서 최단경로 문제는 어렵지 않게 해결 할 수 있다. 1. 다익스트라 알고리즘 GPS 소프트웨어의 가장 기초적 알고리즘으로 채택된다. 다익스트라 알고리즘은 그리디 알고리즘을 사용한다고 생각하면 된다. 매번 가장 비용이 적은 노드를 선택해서 임의의 과정을 반복하기 때문이다. 여기서 또 필요한 알고리즘은 Priority Queue 우선순위 큐이다. 가장 작은 간선의 수를 먼저 실행시켜야 하기 때문이다. ..

알고리즘/GRAPH 2021.12.19

(Android) 개발 필수 스택

1) MVP패턴 2) AAC-VM패턴 3) 비동기 처리 : Coroutines 4) Unit Test : Mockito 5) Webview 6) Networking (retrofit) 7) API 활용 8) Glide 9) ExoPlayer * Firebase와 Jetpack Firebase는 서버가 필요한 데이터베이스, 인증, 원격 구성 등을 서버 없이 구현 가능하게 합니다. Jetpack은 고품질 앱을 손쉽게 개발할 수 있게 돕는 라이브러리, 도구, 가이드 모음 입니다. 위의 기술 스택들을 개념만으로 이해하는 것이 아닌 내가 스스로 학습하여 터특하고 유용하게 응용가능할 정도의 실력을 가지는것이 최종 목표이다.