본문 바로가기
Problem Solving/Baekjoon

[백준] 1058 친구 - Graph Theory / Java

by graycode 2023. 1. 21.

 문제 링크

 

1058번: 친구

지민이는 세계에서 가장 유명한 사람이 누구인지 궁금해졌다. 가장 유명한 사람을 구하는 방법은 각 사람의 2-친구를 구하면 된다. 어떤 사람 A가 또다른 사람 B의 2-친구가 되기 위해선, 두 사람

www.acmicpc.net

 

 풀이 과정

 

 풀이 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int n = Integer.parseInt(br.readLine());

        char[][] arr = new char[n][n];
        boolean[][] check = new boolean[n][n];

        for (int i = 0; i < n; i++)
            arr[i] = br.readLine().toCharArray();

        int max = 0;
        for (int i = 0; i < n; i++) {
            int cnt = 0;
            for (int j = 0; j < n; j++) {
                if (arr[i][j] == 'Y') {
                    check[i][j] = true;
                    for (int k = 0; k < n; k++) {
                        if (arr[j][k] == 'Y')
                            check[i][k] = true;
                    }
                }
            }

            for (int j = 0; j < n; j++) {
                if (i != j && check[i][j])
                    cnt++;
            }
            max = Math.max(max, cnt);
        }

        bw.write(String.valueOf(max));
        bw.flush();
    }

}

댓글