다익스트라2 백준 17396 c++ "백도어" -[PlusUltraCode] https://www.acmicpc.net/problem/17396 [필자 사고] 전형적인 다익스트라 문제이다. 이 문제의 중요한 점은 ward배열이다. 즉 발각 되냐 안되냐에 있다. 와드가 1로 되어 있는 곳은 탐색을 하면 안되므로 그 부분을 신경 써주면 된다. 또한 값들이 매우 크다. int형 범위로는 담을 수 없을수도 있기 때문에 사전에 long으로 바꿔서 문제를 풀어준다. [소스 코드] #include #include #include #include #include #include #include using namespace std; typedef pair Node; int N, M; vector ward; vector Arr; vector pathLoad; vector visited; void .. 2024. 2. 27. 백준 4485 c++ -[PlusUltraCode] [필자 사고] 이 문제는 전형적인 다익스트라 알고리즘의 응용버전이다 필자는 대부분 1차원에서 다익스트라 알고리즘을 사용했다면 이 문제를 통해 2차원까지 확장하는 개념을 얻을 수 있게 되었다. 간단하게 다익스트라 알고리즘을 설명하자면 우선순위 큐에 가장 적은 비용의 index부터 탐색하는 방식이다. 2차원개념과 다익스트라 알고리즘을 알고 있다면 쉽게 해결할 수 있는 문제이다. [소스 코드] #include #include #include #include #include using namespace std; int dy[4] = { 0,1,0,-1 }; int dx[4] = { 1,0,-1,0 }; typedef struct Node { int cost; int sero; int garo; }Node; ty.. 2024. 2. 27. 이전 1 다음