728x90
https://school.programmers.co.kr/learn/courses/30/lessons/72413
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 설명
최단 거리 구하는 문제이며, 한명이 가는 길이 아닌, 두명이 택시를 타고 가는길에 어디까지 같이 가고 어디까지 따로 가야 최소 비용이 나오는가에 대한 문제이다.
2. 문제 풀이
최단 거리, 최소 비용인 만큼 다익스트라 알고리즘을 사용
이를 위해 PriorityQueue 사용
- fares로 인접 행렬 생성
- 출발 지점으로부터 모든 정점 까지 최소 비용을 다익스트라로 구하기 → together
- 정점을 for문으로 돌며 해당 정점으로부터 모든 정점까지 최소 비용을 다익스트라로 구하기 → alone
- together[i] + alone[a-1] + alone[a-1]로 둘의 총 택시비를 계산하여 최솟 값 구하기
- 즉, 출발 지점부터 함께 택시 타고간 정점 까지의 비용 + 어피치 혼자 택시탄 비용 + 무지 혼자 택시탄 비용을 계산하는 것
728x90
'Programming > Java' 카테고리의 다른 글
백준 15686 : 치킨 배달 [JAVA] (0) | 2023.04.03 |
---|---|
백준 16236 : 아기 상어 [JAVA] (0) | 2023.04.03 |
백준 1753 : 최단 거리 [JAVA] (0) | 2023.03.28 |
백준 9663 : n_queen [java] (0) | 2023.03.23 |
객체 지향 설계 원칙 (1) | 2023.03.06 |