반응형
1). 문제 : https://www.acmicpc.net/problem/15652
2). 풀이 :
이어서 수열이 숫자 순서대로만 나와야 될때의 문제이다.
지난 번과 똑같이 이전 값을 기준으로 비교하면 된다..!
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int[] arr = new int[N];
int[] output = new int[N];
permute(arr, output, 0, M, -1);
System.out.println(sb);
}
static void permute(int[] arr, int[] output, int depth, int cnt, int before) {
if(depth == cnt) {
print(output,cnt);
return;
}
for (int i = 0; i < arr.length; i++) {
arr[i] = i+1;
if(before > arr[i]) {
continue;
}
output[depth] = arr[i];
permute(arr, output, depth+1, cnt, arr[i]);
}
}
static void print(int[] output, int cnt) {
for (int i = 0; i < cnt; i++) {
sb.append(output[i]+" ");
}
sb.append("\n");
}
반응형
'Java > Algorithm' 카테고리의 다른 글
[Algorithm] Programmers 로또의 최고순위와 최저순위 풀이 (0) | 2022.07.07 |
---|---|
[Algorithm] Programmers 신고 결과 받기 풀이 (0) | 2022.06.23 |
[Java-Algorithm] 백준 15651 N과 M (3) 풀이 (0) | 2021.08.04 |
[Java-Algorithm] 백준 15650 N과 M (2) 풀이 (0) | 2021.08.04 |
[Java-Algorithm] 백준 15649 N과 M(1) 풀이 (0) | 2021.08.04 |