본문 바로가기
프로그래밍/Baekjoon

(파이썬) 백준 알고리즘 15649 번 N과 M(1)

by J_Remind 2019. 1. 9.

문제

풀이 (Python)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
n,m = map(int,input().split())
 
check = [False]*(n+1)
= [0]*m
 
def go(index, n, m):
    if index == m:
        for i in range(m):
            print (a[i], end = ' ')
        print()
            
        return
    for i in range(1, n+1):
        if check[i]:
            continue
        check[i] = True
        a[index] = i
        go(index+1, n, m)
        check[i] = False
 
go(0,n,m)
 
cs

1. 재귀 함수를 사용하여 수열을 만듦
2. 중복이 불가능 하기 때문에 check를 사용하여 True면 사용 했음, False 사용하지 않음 여부 확인

키워드 (Keyword)

키워드 

재귀 함수 : 자신을 정의할 때 자기 자신을 재참조하는 방법


참고

https://ko.wikipedia.org/wiki/%EC%9E%AC%EA%B7%80%ED%95%A8%EC%88%98

문제 출처