programmers.co.kr/learn/courses/30/lessons/49191
보통 순위 문제는 위상정렬을 이용한 순위 출력문제와
이번문제와 같은 확실한 순위를 묻는 방식이 있는데
문제도 안보고 대충 순위여서 위상정렬로 풀려고하다가 피똥을싸고
플로이드 워샬 알로리즘을 통해서 해결하였다.
import java.util.Arrays;
// 프로그래머스 순위 문제
class Ranking {
static final int MAx = 10000;
public int solution(int n, int[][] results) {
int answer = 0;
int[][] dp = new int[n+1][n+1];
for (int[] arr : dp) {
Arrays.fill(arr, MAx);
}
for(int[] re : results) {
dp[re[0]][re[1]] = 1;
}
for(int k = 1; k <= n; k++) {
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n; j++) {
dp[i][j] = Math.min(dp[i][j], dp[i][k] + dp[k][j]);
}
}
}
for(int i = 1; i <= n; i++) {
boolean checker = true;
for(int j = 1; j <= n; j++) {
if (i == j) continue;
if(dp[i][j] == MAx && dp[j][i] == MAx) {
checker = false;
}
}
if (checker) answer++;
}
return answer;
}
}
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 카카오프렌즈 컬러링북 문제 (자바) (0) | 2021.03.17 |
---|---|
프로그래머스 - 전화번호 목록 문제 (자바) (0) | 2021.03.17 |
프로그래머스 - 3진법 뒤집기 문제 (자바) (0) | 2021.03.17 |
프로그래머스 - 가장 먼 노드 문제 (자바) (0) | 2021.03.16 |
프로그래머스 - 입국 심사 문제 (자바) (0) | 2021.03.16 |