package study; public class BackTracking { public static void main(String[] args) { // ë°±í¸ëí¹ (dfs + pruning) // ì£¼ë¡ ì¬ê·, dfs(ê¹ì´ ì°ì íì) ê³¼ í¨ê» ì¬ì©ë¨ // ì리? // 1. í¹ì ë ¸ëì ì ë§ì± ê²ì¬ // 2. ì ë§íì§ ìì¼ë©´ ê²ì¬íì§ ìì // 3. ë¶ëª¨ ë ¸ëë¡ ëìê° í ë¤ë¥¸ ìì ë ¸ë ê²ì¬ // dfs ë¡ êµ¬ííë©´ bfs ë³´ë¤ ì ì ë©ëª¨ë¦¬ê° ì¬ì©ë¨ int[] arr = new int[5]; dfs(arr, 5, 3, 0); // start ì¸ì를 주ì´, ì¤ë³µì ì ê±°í ì ìì // visit ì¸ì를 ì¶ê°íì¬, ë ¸ëì ì ë§ì±ì ê²ì¬í ì ìì } public static void dfs(int[] arr, int N, int M, int depth) { if(depth == M) { // ì¢ ë£ ì¡°ê±´ // print arr return; } for (int i = 0; i < N; i++) { // ì¬ê· + ë°ë³µ ì¡°ê±´ } } }