https://programmers.co.kr/learn/courses/30/lessons/49191

 

코딩테스트 연습 - 순위

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

programmers.co.kr

#include <string>
#include <vector>
#include <iostream>

using namespace std;

int solution(int n, vector<vector<int>> results) {
    int answer = 0;

    int arr[101][101] = { 0 };

    for (int i = 0; i < results.size(); i++)
        arr[results[i][0]][results[i][1]] = 1;

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            for (int k = 1; k <= n; k++) {
                if (arr[i][k] == 1 && arr[j][i])
                    arr[j][k] = 1;
            }
        }
    }

    for (int i = 1; i <= n; i++) {
        int cnt = 0;
        for (int j = 1; j <= n; j++) {
            if (arr[i][j]==1 || arr[j][i]==1) cnt++;
        }
        if (cnt == n - 1) 
            answer++;
    }
    return answer;
}

int main() {
    //cout << solution(5, { {4, 3},{4, 2},{3, 2},{1, 2},{2, 5} });
    cout << solution(5, { {1, 2},{4, 5},{3, 4},{2, 3} }); // 5
	
    return 0;
}

+ Recent posts