APS/프로그래머스
[그래프] 순위 C++
문래동까마귀
2021. 12. 17. 00:01
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;
}