풀이 방법
플로이드 워셜 방법을 이용해서 다른 선수들과 비교가 가능한지 알아보았다.
이길경우 1 로, 질 경우 -1 로 해서 [1,2]이고 [2,3] 이면 [1,3]이 가능하도록 했다.
내 코드
class Solution {
public int solution(int n, int[][] results) {
int answer = n;
int[][] array = new int[n + 1][n + 1];
for(int i = 0; i < results.length; i++){
array[results[i][0]][results[i][1]] = 1;
array[results[i][1]][results[i][0]] = -1;
}
for(int k = 1; k <= n; k++){
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n ;j++){
if(i == j){
array[i][j] = 2;
}
if(array[i][k] == 1 && array[k][j] == 1){
array[i][j] = 1;
}
if(array[i][k] == -1 && array[k][j] == -1){
array[i][j] = -1;
}
}
}
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n ;j++){
if(array[i][j] == 0){
answer--;
break;
}
}
}
return answer;
}
}
'코딩테스트 > [프로그래머스] 코딩테스트 연습' 카테고리의 다른 글
피로도 (0) | 2021.10.26 |
---|---|
가장 먼 노드 (0) | 2021.10.22 |
추석 트래픽 (0) | 2021.10.21 |
아이템 줍기 (0) | 2021.10.20 |
교점에 별 만들기 (0) | 2021.10.17 |