문제
설명
1부터 N까지 번호가 적힌 구슬이 있습니다. 이 중 중복을 허락하여 M번을 뽑아 일렬로 나열하는 방법을 모두 출력합니다.
입력
첫 번째 줄에 자연수 N(3<=N<=10)과 M(2<=M<=N)이 주어집니다.
출력
첫 번째 줄에 결과를 출력합니다.
출력순서는 사전순으로 오름차순으로 출력합니다.
예시 입력 1
3 2
예시 출력 1
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
내 풀이 = 선생님 풀이
import java.util.Scanner;
public class Main8_4 {
static int n, m;
static int[] arr;
public void DFS(int L){
if(L==m) {
for(int x : arr) System.out.print(x + " ");
System.out.println();
}
else {
for (int i = 1; i <= n; i++) {
arr[L]=i;
DFS(L+1);
}
}
}
public static void main(String[] args) {
Main8_4 T = new Main8_4();
Scanner sc = new Scanner(System.in);
n = sc.nextInt(); //번호
m = sc.nextInt(); //뽑는 횟수
arr = new int[m];
T.DFS(0);
}
}
결과
'Algorithm > Inflearn' 카테고리의 다른 글
[Inflearn] 자바 알고리즘 문제풀이 #08-07 7. 조합의 경우수(DFS, 메모이제이션) (1) | 2023.04.17 |
---|---|
[Inflearn] 자바 알고리즘 문제풀이 #08-05 5. 동전교환(DFS) (0) | 2023.04.13 |
[Inflearn] 자바 알고리즘 문제풀이 #08-03 3. 최대점수 구하기(DFS) (0) | 2023.04.11 |
[Inflearn] 자바 알고리즘 문제풀이 #08-02 2. 바둑이 승차(DFS) (0) | 2023.04.10 |
[Inflearn] 자바 알고리즘 문제풀이 #08-01 1. 합이 같은 부분집합(DFS : 아마존 인터뷰) (0) | 2023.04.09 |