nayeoniee
개발공부 노트
nayeoniee
전체 방문자
오늘
어제
  • 분류 전체보기 (53)
    • Deep Learning (16)
      • 개념 정리 (6)
      • 논문 리뷰 (2)
      • 논문 구현 (0)
      • Object Detection (8)
    • Algorithm (16)
      • 개념 정리 (5)
      • 이코테 (1)
      • baekjoon (5)
      • programmers (4)
      • LeetCode (1)
    • Project (4)
      • Boostcamp AI Tech (4)
    • 자격증 (16)
      • AWS (1)
      • 정보처리기사 필기 (15)
    • 기타 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • re
  • Anchor box
  • 1-stage
  • wandb
  • KLUE
  • 현행시스템파악
  • 프로그래머스
  • 이진탐색
  • 딥러닝
  • 데이터제작
  • BFS
  • python
  • aif-c01
  • 운영체제 #데이터베이스 관리시스템 #웹애플리케이션 #오픈소스 #OS #DBMS #WAS
  • F1 Score
  • 회고
  • 이코테
  • boostcamp
  • selective search
  • FLOPs
  • 그래프
  • 알고리즘
  • 백준
  • object detection
  • dp
  • spatial pyramid pooling
  • 서로소 집합
  • ELECTRA
  • LIS
  • 2-stage

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
nayeoniee

개발공부 노트

Algorithm/baekjoon

[백준] 11403번 - 경로 찾기 (python)

2022. 8. 11. 21:21

문제

가중치 없는 방향 그래프 G가 주어진다.

모든 정점에 대해 i → j로 가는 경로가 있는지 확인해, 모든 노드에서 모든 노드로의 경로 존재 여부를 출력하라.

 

문제 바로가기

 

11403번: 경로 찾기

가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오.

www.acmicpc.net

 

풀이

  • 모든 노드 → 모든 노드로의 최단 경로를 찾는데 사용되는 알고리즘인 플로이드-와샬 알고리즘을 사용했다. (DFS, BFS를 사용해서도 풀 수 있을 것 같다.)
  • 이 문제에서는 자기 자신으로 가는 경로도 존재하는지 확인하는 점이 기존 플로이드-와샬 알고리즘과 다르다.
  • a → k → b 노드 순서로 노드 k를 경유한다고 볼 때, a → k 경로가 존재하고 AND k → b 경로가 존재하면 a → b 경로도 존재한다고 볼 수 있다.
import sys
read = sys.stdin.readline

# 입력 받기
graph = []
N = int(read())
for i in range(N):
    graph.append(list(map(int, read().split())))

# 플로이드-와샬 알고리즘 사용
# a -> k -> b
for k in range(N):
    for a in range(N):
        for b in range(N):
            if graph[a][k] and graph[k][b]:
                graph[a][b] = 1

# 결과 출력
for i in range(N):
    print(*graph[i])
  • 리스트 arr 대신 *arr 을 출력하면 콤마(,) 없이 숫자만 출력된다.

'Algorithm > baekjoon' 카테고리의 다른 글

[백준] 18353번 - 병사 배치하기 (python)  (0) 2022.08.12
[백준] 1932번 - 정수 삼각형 (python)  (0) 2022.08.12
[백준] 1463번 - 1로 만들기 (python)  (0) 2022.08.06
[백준] 12865번 - 평범한 배낭 (python)  (0) 2022.07.23
    'Algorithm/baekjoon' 카테고리의 다른 글
    • [백준] 18353번 - 병사 배치하기 (python)
    • [백준] 1932번 - 정수 삼각형 (python)
    • [백준] 1463번 - 1로 만들기 (python)
    • [백준] 12865번 - 평범한 배낭 (python)
    nayeoniee
    nayeoniee

    티스토리툴바