[ALGOSPOT] 알고스팟 PICNIC 소풍
(Python)
(글쓴날 : 2020.05.12)
* ALGOSPOT, 알고스팟 PICNIC 문제 Python 언어 풀이입니다.
* 소스 코드의 저작권은 글쓴이에게 있습니다.
알고스팟 PICNIC 소풍
1) 문제
문제 링크 : https://www.algospot.com/judge/problem/read/PICNIC
2) 풀이 과정
* 시간 복잡도 : O(n!)
최대 10명의 학생들이 주어지고, 학생들 사이의 친구 관계가 쌍으로 주어질 때, 모든 학생들을 친구끼리 짝이 되도록 하는 경우의 수를 구하는 문제입니다.
저의 경우, DFS를 적용하였으며, Python을 사용했습니다.
먼저, 친구 관계를 표시하는 인접 행렬을 구현한 후, 완전 탐색을 실시하여 친구끼리 짝을 맺었을 때, 남아있는 학생이 없다면 답을 1 증가시키는 식으로 문제를 해결했습니다.
단, 짝이 맞아떨어진 학생들이 순서만 바뀐 채 중복될 경우 답을 여러 번 증가시키게 되므로, 반복 제어 변수를 DFS() 함수의 인자로 넘겨 순열이 아닌 조합을 구했습니다.
3) 코드
* Python 코드
'Deprecated' 카테고리의 다른 글
[Baekjoon Online Judge] 백준 16287번 Parcel(Python) (0) | 2020.05.13 |
---|---|
[Baekjoon Online Judge] 백준 1644번 소수의 연속합(Python) (0) | 2020.05.13 |
[programmers] 프로그래머스 불량 사용자(Python) (0) | 2020.05.10 |
[programmers] 프로그래머스 튜플(C++, Python) (0) | 2020.05.09 |
[programmers] 프로그래머스 크레인 인형뽑기 게임(C++, Python) (0) | 2020.05.08 |