중복순열
2022. 5. 3. 12:25ㆍ코딩 테스트(JAVA)/인프런 문제풀이
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 Main {
static int[] pm;
static int n, m;
public void DFS(int L) { // L : Level
if(L == m) {
for(int x : pm) System.out.print(x + " ");
// 줄바꿈
System.out.println();
}else {
for(int i=1; i<=n; i++) { // 1 2 3
pm[L] = i;
DFS(L+1);
}
}
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
n = kb.nextInt(); // 3
m = kb.nextInt(); // 2
pm = new int[m];
T.DFS(0);
}
}
'코딩 테스트(JAVA) > 인프런 문제풀이' 카테고리의 다른 글
조합 구하기 (0) | 2022.05.03 |
---|---|
순열 구하기 (0) | 2022.05.03 |
💡 이진트리 순회(BFS: Breadth-First Search, 넓이우선탐색, 레벨탐색) (0) | 2022.04.24 |
💡 부분집합 구하기(DFS) (0) | 2022.04.24 |
피보나치 수열(재귀함수 이용) (0) | 2022.04.24 |