본문 바로가기

파이썬

[Python] for else

반응형

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

 

1976번: 여행 가자

동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인

www.acmicpc.net

 

'파이썬' 카테고리의 다른 글

[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