본문 바로가기

알고리즘/프로그래머스

[프로그래머스] 순위 / JAVA

문제링크 : https://programmers.co.kr/learn/courses/30/lessons/49191

 

코딩테스트 연습 - 순위

5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2

programmers.co.kr

class Solution {
    public static int solution(int n, int[][] results) {
        int answer = 0;
        boolean isConnected[][] = new boolean[n+1][n+1];
        for(int i=0;i<results.length;i++){
            int a = results[i][0];
            int b = results[i][1];
            isConnected[a][b] = true;
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                for(int k=1;k<=n;k++){
                    if(isConnected[j][i] && isConnected[i][k]){
                        isConnected[j][k] = true;
                    }
                }
            }
        }
        for(int i=1;i<=n;i++){
            int cnt = 0;
            for(int j=1;j<=n;j++){
                if(isConnected[i][j] || isConnected[j][i]) cnt++;
            }
            if(cnt == (n-1)) answer++;
        }
        return answer;
    }
}