practivceAlgorithm/백준

[백준][Python] 2026 소풍

findTheValue 2021. 9. 14. 13:53

https://www.acmicpc.net/problem/2026

 

2026번: 소풍

만약 K명의 친구 관계인 학생들이 존재하지 않는다면 -1을 출력한다. 그 외의 경우에는, K개의 줄에 학생들의 번호를 증가하는 순서로 한 줄에 한 개씩 출력한다. 여러 경우가 존재한다면 첫 번째

www.acmicpc.net

K명 모두가 친구여야 통과하는 dfs를 짜주면 된다.

 

import sys
input = sys.stdin.readline

def dfs(v,arr):
    if len(arr)==K:
        for num in arr:
            print(num)
        exit()
    for i in range(v+1,N+1):
        if not visited[i]:
            for num in arr:
                if num not in graph[i]:
                    break
            else:
                visited[i] = True
                dfs(i,arr+[i])



K, N, F = map(int, input().split())
graph = {i: [] for i in range(1,N+1)}
for _ in range(F):
    a, b = map(int, input().split())
    graph[a] += [b]
    graph[b] += [a]

for i in range(1,N+1):
    visited = {i: False for i in range(1,N+1)}
    visited[i] = True
    dfs(i,[i])

print(-1)