티스토리 뷰

알고리즘/BOJ

[BOJ-15649] N과 M(1)

개발하는 후딘 2020. 4. 8. 06:53
728x90
반응형

https://www.acmicpc.net/problem/15649

 

15649번: N과 M (1)

한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다.

www.acmicpc.net


[풀이]

순열(Permutations)를 이용하여 풀 수 도있는데

DFS 연습겸으로 DFS를 이용하여 풀었다.


[코드 Python]

import sys
from copy import deepcopy
input=sys.stdin.readline

def dfs(visited, nums):
    global M, N
    if len(nums)==M:
        print(' '.join(nums))
        
    else:
        for i in range(1,N+1):
            if visited[i]==0:
                
                #복사를한다.
                tmp_visited=deepcopy(visited)
                tmp_visited[i]=1
                dfs(tmp_visited, nums+[str(i)])
            
    

N,M=map(int, input().strip().split())
for i in range(1,N+1):
    #먼저방문한다.
    visited=[0]*(N+1)
    visited[i]=1
    dfs(visited, [str(i)])

728x90
반응형

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ-2096] 내려가기  (0) 2020.04.19
[BOJ-1022] 소용돌이 예쁘게 출력하기  (0) 2020.04.08
[BOJ-14889] 스타트와 링크  (0) 2020.04.04
[BOJ-15686] 치킨배달  (0) 2020.04.04
[BOJ-10159] 저울  (0) 2020.04.04
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함