** 알고리즘 오답노트 18 (백준 - 15650)

박경준·2021년 6월 20일
0

알고리즘 문제풀이

목록 보기
21/24

N과 M

5C2 같은 조합의 모든 경우의 수를 나열하는 문제인데 이게 결국 DFS 문제였다...!

  • 4C2라고 할때 아래와 같은 수열을 출력해야 한다.
    1 2
    1 3
    1 4
    2 3
    2 4
    3 4
  • 제시해주는 횟수만큼 for문이 돌아야하는데 이는 재귀적 표현이다.
n, m = list(map(int,input().split()))
s = []
def dfs(start):
  if len(s) == m: # m만큼만 반복하면 되기때문에 탈출조건으로 배열의 길이가 m이 되면 탈출.
    print(" ".join(map(str, s)))
    return
  for i in range(start, n+1):
    s.append(i)
    dfs(i+1)
    s.pop()

dfs(1)
profile
빠굥

0개의 댓글