목록전체 글 (601)
sm 기술 블로그
N, M = map(int, input().split()) S = [] def DFS(): if len(S) == M: print(" ".join(map(str, S))) return for i in range(1, N+1): S.append(i) DFS() S.pop() DFS() 문제요약 DFS를 이용하여 백트래킹을 해보아라. 설명 DFS와 백트래킹에 대한 개념은 아래를 참고하자. https://smhope.tistory.com/309 백트래킹 백트래킹 더 이상 나아갈 수 없는 상황에서 그 이전 단계로 복귀하는 과정 모든 경우의 수를 전부 고려하는 알고리즘이다. 트리 탐색 알고리즘이라고 봐도 무방하며 방식에 따라 깊이우선탐색 ( smhope.tistory.com https://smhope.tistor..
import java.util.*; public class Main { static int[] arr; static int N, M; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); M = sc.nextInt(); arr = new int[M]; sc.close(); DFS(1, 0); } private static void DFS(int start, int depth) { if (depth == M) { for (int val : arr) { System.out.printf(val + " "); } System.out.println(); return; } for (int i = s..
N, M = list(map(int, input().split())) S = [] def DFS(start): if len(S) == M: print(" ".join(map(str, S))) for i in range(start, N+1): if i not in S: S.append(i) DFS(i+1) S.pop() DFS(1) 문제요약 DFS를 이용하여 백트래킹을 해보아라. 설명 DFS와 백트래킹에 대한 개념은 아래를 참고하자. https://smhope.tistory.com/309 백트래킹 백트래킹 더 이상 나아갈 수 없는 상황에서 그 이전 단계로 복귀하는 과정 모든 경우의 수를 전부 고려하는 알고리즘이다. 트리 탐색 알고리즘이라고 봐도 무방하며 방식에 따라 깊이우선탐색 ( smhope.tistor..
import java.util.*; class Main { static int[] tmp; static boolean[] visited; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int M = sc.nextInt(); sc.close(); tmp = new int[M]; visited = new boolean[N]; DFS(N, M, 0); } private static void DFS(int N, int M, int depth) { if (depth == M) { for (int val : tmp) { System.out.printf(val + " "); } Syst..