-
https://www.acmicpc.net/problem/5972
5972번: 택배 배송
농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는
www.acmicpc.net
https://github.com/JUNGSOONIL/JAVA/blob/main/BAEKJOON%205972
GitHub - JUNGSOONIL/JAVA: JAVA 소스 코드
JAVA 소스 코드. Contribute to JUNGSOONIL/JAVA development by creating an account on GitHub.
github.com
해당 문제는 농부가 도착점에 택배를 가져다줘야 하는데 가는 길에 만나는 모든
소들에게 여물을 줘야 한다.
이때 여물을 최소로 줄 수 있는 값을 구해주면 된다.
다익스트라 알고리즘을 이용해서 문제를 해결했으며,
정렬은 PriorityQueue(우선순위 큐)를 사용하였고 람다식을 이용해 정렬했다
간선 정보는 ArrayList<ArrayList<Edge>>
어레이 리스트 안에 어레이 리스트를 넣는 방식으로 사용했다.
처음에 방문, 비용 배열과 어레이 리스트를 다 초기화 시켜 크기를 할당해 주고
이후 입력받은 간선 정보를 어레이 리스트에 넣어준 뒤
주어진 시작점을 pq에 넣어 pq가 빌 때까지 돌면서 최솟값을 찾아 넣어주는 식으로
문제를 해결했다.
cost에 시작 점은 1이 고갈 수 있는 모든 정점에 대한 최솟값이 담겨있기 때문에
cost[N]과 같은 식으로 결과를 출력해 주었다.
728x90'알고리즘 > Baekjoon' 카테고리의 다른 글
Baekjoon 17829 222-폴링 JAVA (0) 2021.11.09 Baekjoon 16398 행성 연결 JAVA (0) 2021.11.09 Baekjoon 1916 최소비용 구하기 JAVA (0) 2021.11.09 Baekjoon 1753 최단경로 JAVA (0) 2021.11.09 Baekjoon 21924 도시 건설 JAVA (0) 2021.11.09 댓글