반응형
Python에는 for else 문법이 존재한다
이 문법은 for 안에서 break문으로 인해서 강제 종료가 된다면 else문을 실행하지 않고 아니면 실행하는 문법이다.
N = int(input())
M = int(input())
def find_parent(parent,x):
if parent[x] != x:
parent[x] = find_parent(parent,parent[x])
return parent[x]
def union_parent(parent,a,b):
a = find_parent(parent,a)
b = find_parent(parent,b)
if a < b:
parent[b] = a
else:
parent[a] = b
parent = [i for i in range(N+1)]
for i in range(N):
data = list(map(int,input().split()))
for j in range(N):
if data[j] == 1:
union_parent(parent,i+1,j+1)
route = list(map(int,input().split()))
start = route[0]
for i in range(1,len(route)):
if find_parent(parent,start) != find_parent(parent,route[i]):
print("NO")
break
else:
print("YES")
다음은 백준의 여행 가자 문제이다.
여기서 보면 마지막 for else를 사용한 것을 볼 수 있는데 if 안을 실행하고 break를 하면 print("NO")만 실행되고, for문을 마치면 else안에 있는 print("YES")가 실행이 된다.
https://www.acmicpc.net/problem/1976
'파이썬' 카테고리의 다른 글
[Python] list, set, dict 컨테이너 (0) | 2020.10.09 |
---|---|
Decorator (0) | 2020.09.20 |
First class function, Closure (0) | 2020.09.20 |
char 형 -> int 형 변환 (0) | 2020.09.19 |