15651번: N과 M (3)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
백트래킹을 연습하기 위해 내장 함수를 사용하지 않고 직접 함수를 구현해서 문제를 풀었다
N과 M(3)는 중복순열을 구하는 문제이다.
순열을 구하는 것과 크게 차이는 없고 중복된 값을 따로 체크하지 않기 때문에 따로 체크할 부분은 없다.
소스코드
n, m = map(int, input().split())
result = []
def dfs(count):
if count == m:
print(*result)
return
for i in range(1,n+1):
result.append(i)
dfs(count+1)
result.pop()
dfs(0)
'Problem Solving > 백준' 카테고리의 다른 글
[BOJ 백준] 15654번 : N과 M(5) - Python (0) | 2021.01.03 |
---|---|
[BOJ 백준] 15652번 : N과 M(4) - Python (0) | 2021.01.03 |
[BOJ 백준] 2467번 - 용액 (0) | 2020.10.21 |
[BOJ, 삼성 SW 역량 테스트 기출 문제] 19238번 : 스타트 택시 (0) | 2020.10.09 |
[BOJ, 삼성 SW 역량 테스트 기출 문제] 16236번 : 아기상어 (0) | 2020.10.09 |