[백준] 15651 N과 M (3)

장철현·2024년 1월 31일
0

백준

목록 보기
60/80

링크

15651 N과 M (3)

문제

풀이

dfs인데 중복을 허용하는 문제이다.

코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Main {
	public static StringBuilder sb = new StringBuilder();
	public static boolean[] visited;
	public static List<Integer> list = new ArrayList<>();
	
	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] arr = br.readLine().split(" ");
		
		int n = Integer.parseInt(arr[0]);
		int m = Integer.parseInt(arr[1]);
		
		visited = new boolean[m];
		dfs(0, m, n);
		System.out.println(sb.toString());
	}
		
	
	public static void dfs(int dept, int limit, int n) {
		if(dept == limit) {
			for(int i=0;i<list.size();i++) {
				sb.append(list.get(i) + " ");
			}
			
			sb.append("\n");
			
			return;
		}
		
		for(int i=1;i<=n;i++) {
			list.add(i);
			dfs(dept+1, limit, n);
			list.remove(list.size() - 1);
		}
		
		
	}
		
	
}

0개의 댓글