-
[백준] 15654번 문제 (N과 M (5)) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 8. 25. 11:56
https://www.acmicpc.net/problem/15654
n, m = map(int, input().split()) nums = sorted(list(map(int, input().split()))) temp = [] def dfs(): if len(temp) == m: print(*temp) return for i in range(n): if nums[i] not in temp: temp.append(nums[i]) dfs() temp.pop() dfs()
전형적인 백트래킹 수열 문제 중 하나다.
라이브러리를 사용해도 되지만 그러면 문제를 푸는 의미가 없을 것 같아. dfs를 구현해서 풀었다.
코드가 길지는 않지만 재귀형태이기 때문에 처음에는 이해하기가 쉽지 않았는데 비슷한 문제를 계속 접하니 코드가 익숙해졌다.
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 15656번 문제 (N과 M (7)) 파이썬(Python) 풀이 (0) 2021.08.25 [백준] 15655번 문제 (N과 M (6)) 파이썬(Python) 풀이 (0) 2021.08.25 [백준] 1748번 문제 (수 이어 쓰기 1) 파이썬(Python) 풀이 (0) 2021.08.25 [백준] 1107번 문제 (리모컨) 파이썬(Python) 풀이 (0) 2021.08.23 [백준] 2309번 문제 (일곱 난쟁이) 파이썬(Python) 풀이 (0) 2021.08.23