Skip to content

Commit d926430

Browse files
committed
[Silver III] Title: N과 M (1), Time: 272 ms, Memory: 31716 KB -BaekjoonHub
1 parent b8dd77c commit d926430

2 files changed

Lines changed: 74 additions & 0 deletions

File tree

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
2+
import java.io.BufferedReader;
3+
import java.io.BufferedWriter;
4+
import java.io.IOException;
5+
import java.io.InputStreamReader;
6+
import java.io.OutputStreamWriter;
7+
import java.util.StringTokenizer;
8+
9+
class Main {
10+
static BufferedWriter bw = new BufferedWriter( new OutputStreamWriter(System.out));
11+
public static void main(String[] args) throws IOException {
12+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
13+
StringTokenizer st = new StringTokenizer(br.readLine());
14+
int N=Integer.parseInt(st.nextToken());
15+
int M=Integer.parseInt(st.nextToken());
16+
int[] arr = new int[N];
17+
boolean[] checker = new boolean[N+1];
18+
backtracking(arr,0,M,checker);
19+
bw.flush();
20+
}
21+
private static void backtracking(int []arr, int init ,int depth,boolean[] checker) throws IOException {
22+
if (depth==init){
23+
for (int i = 0; i <init ; i++) {
24+
bw.write(arr[i]+" ");
25+
}
26+
bw.write("\n");
27+
return;
28+
}
29+
for (int i = 1; i <= arr.length ; i++) {
30+
if (checker[i]){
31+
continue;
32+
}
33+
arr[init]=i;
34+
checker[i]=true;
35+
backtracking(arr,init+1,depth,checker);
36+
checker[i]=false;
37+
}
38+
39+
}
40+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# [Silver III] N과 M (1) - 15649
2+
3+
[문제 링크](https://www.acmicpc.net/problem/15649)
4+
5+
### 성능 요약
6+
7+
메모리: 31716 KB, 시간: 272 ms
8+
9+
### 분류
10+
11+
백트래킹
12+
13+
### 제출 일자
14+
15+
2024년 12월 3일 00:24:30
16+
17+
### 문제 설명
18+
19+
<p>자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.</p>
20+
21+
<ul>
22+
<li>1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열</li>
23+
</ul>
24+
25+
### 입력
26+
27+
<p>첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)</p>
28+
29+
### 출력
30+
31+
<p>한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.</p>
32+
33+
<p>수열은 사전 순으로 증가하는 순서로 출력해야 한다.</p>
34+

0 commit comments

Comments
 (0)