반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


1. [백준 알고리즘] 백준 1058번 친구 파이썬(Python)

1) 문제번호 : 1058번

 

2) 문제 출처

www.acmicpc.net/problem/1058

 

1058번: 친구

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

www.acmicpc.net

 

2. 문제

지민이는 세계에서 가장 유명한 사람이 누구인지 궁금해졌다. 가장 유명한 사람을 구하는 방법은 각 사람의 2-친구를 구하면 된다. 어떤 사람 A가 또다른 사람 B의 2-친구가 되기 위해선, 두 사람이 친구이거나, A와 친구이고, B와 친구인 C가 존재해야 된다. 여기서 가장 유명한 사람은 2-친구의 수가 가장 많은 사람이다. 가장 유명한 사람의 2-친구의 수를 출력하는 프로그램을 작성하시오.

A와 B가 친구면, B와 A도 친구이고, A와 A는 친구가 아니다.

 

3. 제약사항

4. 입력

첫째 줄에 사람의 수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 각 사람이 친구이면 Y, 아니면 N이 주어진다. (예제를 참고)

5. 출력

첫째 줄에 가장 유명한 사람의 2-친구의 수를 출력한다.

 

6. 풀이

 

7. 소스 코드

import sys
input = sys.stdin.readline

N = int(input())

friend = [list(input()) for _ in range(N)]
visit = [[0 for _ in range(N)] for _ in range(N)]


for i in range(N):
    for j in range(N):
        for k in range(N):
            if j == k: continue

            if friend[j][k]=='Y' or (friend[j][i]=='Y' and friend[i][k]=='Y'):
                visit[j][k] = 1

result = 0

for i in visit:
    result = max(result, sum(i))

print(result)




 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기