Notice
Recent Posts
Recent Comments
Tags
- 이분탐색
- TIL
- 백준 다이나믹프로그래밍
- 항해99 코테 스터디
- Spring 초보
- 코테 연습
- 코테
- 백준 dp
- 코딩테스트 연습
- 백준
- dp 알고리즘
- 알고리즘 문제
- 브루트포스
- 코딩테스트
- 프로그래머스 레벨1
- 항해99
- 장고 기초
- Django 기초
- spring 기초
- 스프링 기초
- 백준 구현
- BFS
- 스프링 초보
- 백준 DFS와 BFS
- 프로그래머스 level1
- 다이나믹 프로그래밍
- programmers
- 99클럽 코테 스터디
- 프로그래머스
- 알고리즘 공부
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
11581번: 구호물자
서기 2050년 엄청나게 강력한 폭풍이 인천을 강타했다. 강력한 폭풍의 영향으로 모든 사람은 대피소로 대피하였으며, 많은 도로가 유실되었다. 그나마 남아있는 도로도 모든 표지판과 가로등이
www.acmicpc.net
'백준 > 그래프 탐색' 카테고리의 다른 글
[백준 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 |