코딩테스트 문제풀이/beakjoon
[CCC] 탑승구
merona99
2022. 7. 8. 00:14
반응형
CCC 탑승구
그래프 / 서로소 집합
[문제]
[과정]
기본적으로 서로소 집합 문제
- 비행기 번호에 맞는 탑승구(루트)에 도킹
- 도킹할 수 없다면 비행기 번호 -1의 탑승구에 도킹 할 수 있는지 확인
- 탑승구(parent)가 0이 될 때까지 도킹하지 못하면 공항 운행을 중지시키고 도킹한 개수를 출력
[소스코드]
# 탑승구
def find_parent(parent, x):
if parent[x] != x:
return find_parent(parent, parent[x])
return 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
g = int(input())
p = int(input())
parent = [0] * (g + 1)
for i in range(1, g+1):
parent[i] = i
result = 0
for i in range(p):
n = int(input())
data = find_parent(parent,n)
if data == 0:
break
union_parent(parent,data-1,n)
result += 1
print(result)
[정답]
반응형