[알고리즘 문제풀이] N과 M(2)

황인권·2023년 4월 22일
0

알고리즘 문제풀이

목록 보기
67/81

문제 제목 : N과 M(2)

문제 난이도 : 하

문제 유형 : 백트래킹

https://www.acmicpc.net/problem/15650
시간 제한 : 1초
메모리 제한 : 512MB

문제풀이 아이디어

  • 재귀함수를 이용, 출력하려는 리스트의 개수가 m개이면 리스트의 내용을 출력
  • 재귀함수를 호출할 때 i + 1로 호출 -> 오름차순으로 리스트에 들어간다.
  • 다음에 오는 숫자가 현재 숫자보다 작으면 검색 x

< 소스코드 >

n,m = list(map(int,input().split()))
s = []
def dfs(start):
    if len(s)==m:
        print(' '.join(map(str,s)))
        return
    
    for i in range(start,n+1):
        if i not in s:
            s.append(i)
            dfs(i+1)
            s.pop()
dfs(1)
profile
inkwon Hwang

0개의 댓글