Notice
Recent Posts
Recent Comments
Tags
- 코테
- 장고
- 프로그래머스 레벨1
- 백준 dp
- 알고리즘 문제
- 백준 다이나믹프로그래밍
- 백준 선수과목
- 프로그래머스 level1
- spring 기초
- 백준 14567 파이썬
- 백준 선수과목 python
- Spring 초보
- dp 알고리즘
- Django 기초
- 스프링 초보
- 위상정렬 파이썬
- 코딩테스트
- 장고 기초
- 백준 14567 python
- Django
- 코딩테스트 연습
- 프로그래머스
- 알고리즘 공부
- 백준 14567
- programmers
- 코테 연습
- 백준 선수과목 파이썬
- 백준
- 백준 선수과목 14567
- 스프링 기초
Archives
- Today
- Total
일일구름 IT
[백준 11581] 구호물자 (Python) 본문
문제
이 문제는 플로이드 워셜로 분류된 문제이다.
문제를 푸는 과정은
1. 플로이드 워셜 알고리즘을 이용해 모든 경로 저장
2. CIRCLE이 생기는 경우가 언제인지
3. CIRCLE이 생기지만 1의 경로에 포함되는지 여부
위의 과정중에 3번을 고려하지 않아 제출했을때 52%에서 계속 실패가 떴다..
내 코드
n = int(input())
m = 0
arr = [[0 for col in range(n)] for row in range(n)]
for i in range(n-1):
m = int(input())
node = map(int, input().split())
for j in node:
arr[i][j-1] = 1
for k in range(n):
for i in range(n):
for j in range(n):
if arr[i][k] and arr[k][j]:
arr[i][j] = 1
for i in range(n):
if arr[i][i] ==1 and arr[0][i]:
print('CYCLE')
exit()
print('NO CYCLE')
CIRCLE이 생기는 경우는 arr[i][i]인 경우다.
CIRCLE은 교차로를 다시 방문하는 경우이기 때문에 결국 순환이 생겨서 자기자신을 방문할 수 있는 경로가 생기는 경우라고 볼 수 있기 때문이다.
https://www.acmicpc.net/problem/11581
'백준 > 그래프 탐색' 카테고리의 다른 글
[백준 14567] 선수과목 (Prerequisite) (Python) (0) | 2025.01.07 |
---|---|
[백준 1388] 바닥 장식 (Python) (0) | 2024.09.29 |
[백준 18352] 특정 거리의 도시 찾기 (Python) (0) | 2023.06.08 |
[백준 1260번] [Python] DFS와 BFS (그래프 탐색) (0) | 2023.02.15 |