728x90
https://www.acmicpc.net/problem/1058
2-친구를 구하는 문제다. 2-친구라는건 A와 B가 친구거나, A와 B가 친구가 아니더라도, 인싸인 C에 의해 연결될 수 있는 사이를 말하는 것이다. A-B 이거나 A-C-B 인 관계를 의미한다.
시간이 매우 오래 걸리는 방법을 택한듯 하다. 거의 브루트포스 아닐까 싶다. 내 풀이가 그렇게 좋은 풀이는 아닌것 같다.
#include <iostream>
#include <string.h>
#include <algorithm>
#define MAX_N 50
using namespace std;
int main(){
int N;
string friends_each[MAX_N];
int two_friend_cnt[MAX_N] = {0};
cin >> N;
for(int n=0; n<N; n++)
{
cin >> friends_each[n];
}
for(int n=0; n<N; n++)
{
for(int i=0; i<N; i++)
{
if(n==i)
{
continue;
}
if(friends_each[n][i]=='Y')
{
two_friend_cnt[n]++;
}
else if(friends_each[n][i]=='N')
{
for(int j=0; j<N; j++)
{
if((friends_each[n][j] =='Y') && (friends_each[i][j] == 'Y'))
{
two_friend_cnt[n]++;
break;
}
}
}
}
}
int ans = *max_element(two_friend_cnt,two_friend_cnt+N);
cout << ans << "\n";
}
'프로그래밍 > programmers&bj' 카테고리의 다른 글
[C++] 백준 4963번: 섬의 개수 (0) | 2020.07.21 |
---|---|
[C++] 백준 1080번: 행렬 (0) | 2020.07.11 |
[C++] 백준 1012번 유기농 배추 (0) | 2020.07.07 |
[C++][알고리즘] 백준 1003번 피보나치 함수 (0) | 2020.06.06 |
[C++][알고리즘] 달팽이 숫자 만들기 (0) | 2020.05.02 |