[Python] 1058. 친구

2023. 5. 18. 18:05·study/백준(BOJ)
728x90

https://www.acmicpc.net/problem/1058

 

1058번: 친구

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

www.acmicpc.net

 

접근법

  • 플로이드 워셜을 통해 직접적인 친구 관계이거나 다른 한명을 건너 친구인 수를 모두 구함
  • 그 중 maximum 값을 출력
def input_func():
    N = int(input())
    arr = []
    for i in range(N):
        # input.split()을 하지 않으면 한 글자씩 분리하여 저장
        arr.append(list(input()))
    return N, arr


def solution(N, arr):
    friend_num = [[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 arr[j][k] == 'Y' or (arr[j][i] == 'Y' and arr[i][k] == 'Y'):
                    friend_num[j][k] = 1

    ans = 0
    for row in friend_num:
        ans = max(ans, sum(row))
    print(ans)


def main():
    N, arr = input_func()
    solution(N, arr)
    return


if __name__ == '__main__':
    main()


 

사용된 알고리즘

그래프 이론, 브루트포스 알고리즘, 그래프 탐색, 플로이드-워셜

728x90

'study > 백준(BOJ)' 카테고리의 다른 글

[Python] 2012. 등수 매기기  (0) 2023.06.01
[Python] 11660. 누적 합 구하기 5  (0) 2023.06.01
[Python] 1679. 숫자놀이  (0) 2023.05.17
[Python] 2458. 키 순서  (1) 2023.05.17
[Python] 22114. 창영이와 점프  (0) 2023.05.17
'study/백준(BOJ)' 카테고리의 다른 글
  • [Python] 2012. 등수 매기기
  • [Python] 11660. 누적 합 구하기 5
  • [Python] 1679. 숫자놀이
  • [Python] 2458. 키 순서
bbooo
bbooo
  • bbooo
    bbooo
    bbooo
  • 전체
    오늘
    어제
    • 분류 전체보기 (142)
      • study (61)
        • 백준(BOJ) (34)
        • Programmers (15)
        • LeetCode (9)
      • AI (4)
        • Paper (0)
      • SSAC X IFFEL (4)
        • DeepML (1)
        • 밑바닥 부터 시작하는 딥러닝 (2)
      • 회고 (46)
      • Error (10)
      • Setting (15)
  • 블로그 메뉴

    • 홈
    • 태그
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    python 석유시추
    programmers 석유시추
    docker
    항해99
    코딩테스트 준비
    sequence item 0: expected str instance int found
    vscode
    브루트포스
    투포인터
    백트래킹
    99클럽
    풀이 실패
    sort
    프로그래머스 석유시추
    set
    typeerror: sequence item 0: expected str instance int found
    백준
    개발자 취업
    Til
    python 과제 진행하기
    LeetCode
    파이썬
    파이썬 과제 진행하기
    백준 2470
    programmers 과제 진행하기
    문자열을 원하는 길이로
    파이썬 석유시추
    Counter
    그리디 알고리즘
    두 포인터
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
bbooo
[Python] 1058. 친구
상단으로

티스토리툴바