Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 다익스트라
- 뮤텍스란?
- 웹 호스팅
- Proxy
- 호스팅이란?
- 플로이드 와샬
- 세마포어와 뮤텍스의 차이
- SSAFY
- 최단 경로
- 클라우드 서버
- 싸피
- 싸피 합격
- Proxy Server
- 삼성 청년 SW 아카데미
- 동기화
- 프록시
- 서버 호스팅
- 싸피 면접 후기
- floyd-warshall
- 프록시서버
- 세마포어
- 뮤텍스
- 다익스트라 알고리즘
- Dijkstra Algorithm
- 호스팅
- 세마포어란?
- Synchronization
- 세마포어와 뮤텍스
- 플로이드 워셜
Archives
- Today
- Total
어제의 나보다 성장한 오늘의 나
[프로그래머스][2021 KAKAO BLIND RECRUITMENT][자바] 합승 택시 요금 본문
알고리즘/프로그래머스(Programmers)
[프로그래머스][2021 KAKAO BLIND RECRUITMENT][자바] 합승 택시 요금
NineOne 2021. 4. 16. 20:02programmers.co.kr/learn/courses/30/lessons/72413
코딩테스트 연습 - 합승 택시 요금
6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4
programmers.co.kr
import java.io.*;
import java.util.*;
class Solution {
public int solution(int n, int s, int a, int b, int[][] fares) {
int answer = Integer.MAX_VALUE;
int[][] map = new int[n][n];
//초기화
for(int i=0; i<n; i++) {
for(int j=0; j<n; j++) {
if(i==j) map[i][j]=0;
else map[i][j] = Integer.MAX_VALUE;
}
}
for(int i=0; i<fares.length; i++) {
map[fares[i][0]-1][fares[i][1]-1] = fares[i][2];
map[fares[i][1]-1][fares[i][0]-1] = fares[i][2];
}
for(int k=0; k<n; k++) {
for(int i=0; i<n; i++) {
for(int j=0; j<n; j++) {
if(map[i][k] == Integer.MAX_VALUE || map[k][j] == Integer.MAX_VALUE) continue;
map[i][j] = Math.min(map[i][j], map[i][k]+map[k][j]);
}
}
}
for(int i=0; i<n; i++) {
answer = Math.min(answer, map[i][s-1]+map[i][a-1]+map[i][b-1]);
}
return answer;
}
}
정리
- 경로를 거치고, 각 지점마다 최소 거리를 구하는 문제 이기때문에 플로이드 와샬로 풀면 쉽게 풀린다.
- 처음에 경로를 초기화 해준다.
- fares에서 값을 꺼내서 map 2차원 배열을 구성해준다.
- 플로이드 와샬로 알로기즘으로 각 노드의 최소값을 구한다.
- 각 지점별로 최고의 환승 지점을 찾는다.
'알고리즘 > 프로그래머스(Programmers)' 카테고리의 다른 글
[프로그래머스][2020 KAKAO BLIND RECRUITMENT][자바]문자열 압축 (0) | 2021.04.23 |
---|---|
[프로그래머스][2021 KAKAO BLIND RECRUITMENT][자바] 신규 아이디 (0) | 2021.04.22 |
[프로그래머스][월간 코드 챌린지 시즌2][자바] 모두 0으로 만들기 (0) | 2021.04.15 |
[프로그래머스][월간 코드 챌린지 시즌2][자바] 괄호 회전하기 (0) | 2021.04.15 |
[프로그래머스][2019 카카오 개발자 겨울 인턴십] 징검다리 건너기 (0) | 2021.04.13 |
Comments