Notice
Recent Posts
Recent Comments
Tags
- Django
- programmers
- 코테
- 프로그래머스 레벨2
- 알고리즘 문제
- Spring 초보
- 스프링 초보
- 백준 바닥장식 python
- 코테 연습
- 백준
- 스프링 기초
- 코딩테스트 연습
- 프로그래머스 고득점 kit
- 프로그래머스 전화번호 목록 파이썬
- 프로그래머스 알고리즘 고득점 kit
- 코딩테스트
- 바닥장식 파이썬
- 장고 기초
- 프로그래머스 레벨1
- 백준 다이나믹프로그래밍
- dp 알고리즘
- 알고리즘 공부
- 프로그래머스 전화번호 목록 python
- 장고
- 프로그래머스 level1
- 전화번호 목록 python
- spring 기초
- 백준 dp
- Django 기초
- 프로그래머스
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
'백준 > 그래프 탐색' 카테고리의 다른 글
[백준 1388] 바닥 장식 (Python) (0) | 2024.09.29 |
---|---|
[백준 18352] 특정 거리의 도시 찾기 (Python) (0) | 2023.06.08 |
[백준 1260번] [Python] DFS와 BFS (그래프 탐색) (0) | 2023.02.15 |