🌞Algorithm/🔥Baekjoon

[Baekjoon] 1058_친구

뿌야._. 2023. 10. 23. 10:53

Silver II

문제(출처: https://www.acmicpc.net/problem/1058)

< 친구 >

 

문제 풀이 

 

A의 2-친구를 구하기 위해서는 먼저 A와 친구인 사람을 찾는다. 그 후에 A와 친구인 사람들의 친구를 찾는다.

 

 

 my solution (Java)

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

public class _1058_ { // 친구

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

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

		char arr[][] = new char[n][n];
		int visited[][] = new int[n][n];
		int result[] = new int[n];

		for (int i = 0; i < n; i++) {
			String str = bf.readLine();
			for (int j = 0; j < n; j++) {
				arr[i][j] = str.charAt(j);
			}
		}

		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
				if (arr[i][j] == 'Y' && visited[i][j] == 0) {
					visited[i][j] = 1;
					result[i] += 1;
				}
			}
			for (int j = 0; j < n; j++) {
				if (visited[i][j] == 1) {
					for (int k = 0; k < n; k++) {
						if (i != k && arr[j][k] == 'Y' && visited[i][k] == 0) {
							visited[i][k] = 2;
							result[i] += 1;
						}
					}
				}
			}
		}

		int answer = result[0];
		for (int i = 0; i < n; i++) {
			if (answer < result[i])
				answer = result[i];
		}
		System.out.println(answer);
	}
}

 

Main

변수)
n : 사람의 수
arr : 사람들의 친구 여부 
visited : 친구 확인 방문 여부
result : 2-친구 수
answer : 가장 유명한 사람의 2-친구의 수

 

- 사람의 수(n) 입력

- 사람들의 친구 여부(arr)를 입력

- 자신과 친구라면 방문 여부를 1로 저장, 친구의 친구라면 방문 여부를 2로 저장

- 가장 유명한 사람의 2-친구의 수 출력



 

'🌞Algorithm > 🔥Baekjoon' 카테고리의 다른 글

[Baekjoon] 11637_인기 투표  (0) 2023.10.25
[Baekjoon] 9575_행운의 수  (1) 2023.10.24
[Baekjoon] 1956_운동  (0) 2023.10.20
[Baekjoon] 1015_수열 정렬  (0) 2023.10.19
[Baekjoon] 20044_Project Teams  (0) 2023.10.18