[BaekJoon] 백준 15651번 N과 M(3)
문제: www.acmicpc.net/problem/15651
내코드
- 이전 문제들과 비슷
- 단지 오름차순이여야 한다는 조건이 없고, 중복이 가능하기 때문에 해당 코드를 제거해 주면 된다.
# BaekJoon 15651.py N과 M(3)
# 백트래킹 문제: 주어진 문제의 답을 구하기 위해 현재 상태에서 가능한 모든 후보군을 따라 들어가며 탐색하는 알고리즘
n, m = map(int, input().split())
out = [] # 출력 내용
def solve(depth, N, M):
if depth == M: # 길이가 m인 리스트가 완성되었다면
print(' '.join(map(str, out))) # 출력
return
for i in range(n): # 1-n까지 수를 돌아가며
out.append(i+1) # 사용한 것 리스트에 기록
solve(depth+1, N, M) # 리스트의 다음 수 정하러 들어감
out.pop() # k번째 수를 i로 정한 경우를 모두 확인했으므로 k번째 수를 pop하기(다음 수를 k번째에 집어넣기 위해)
solve(0, n, m)
참고
728x90
반응형
'CS > Algorithm 문제' 카테고리의 다른 글
[BaekJoon] 백준 1759번 암호 만들기 (0) | 2021.02.13 |
---|---|
[BaekJoon] 백준 6603번 로또 (0) | 2021.02.10 |
[BaekJoon] 백준 15650번 N과 M (2) (0) | 2021.02.01 |
[BaekJoon] 백준 15649번 N과 M(1) (0) | 2021.01.28 |
[BaekJoon] 11729번 하노이 탑 이동 순서 (0) | 2021.01.26 |