๐ [๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ ํ์ด] Q.15650 N๊ณผM (2) ๋ฌธ์ ํ์ด - java
๐ ๋ฌธ์
https://www.acmicpc.net/problem/15650
์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ก์ ๋, ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
1๋ถํฐ N๊น์ง ์์ฐ์ ์ค์์ ์ค๋ณต ์์ด M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด
๊ณ ๋ฅธ ์์ด์ ์ค๋ฆ์ฐจ์์ด์ด์ผ ํ๋ค.
๐ ์ ๊ทผ๋ฒ
Q.15650 N๊ณผM (2) ๋ฌธ์ ์ ๋๋ค.
์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ก์ ๋
1๋ถํฐ N๊น์ง ์์ฐ์ ์ค์์ ์ค๋ณต ์์ด M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ๋ฌธ์ ์ ๋๋ค.
์ค๋ณต์์ด ์ค๋ฆ์ฐจ์์ผ๋ก ์ฆ ์ค๋ณต์์ด ์์์ ์๊ด์์ด N๊ฐ์ค M๊ฐ๋ฅผ ๊ณ ๋ฅด๋ ์กฐํฉ ๋ฌธ์ ์ ๋๋ค.
๋ฐฑํธ๋ํน์ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๐ป ์ฝ๋
package problem.brute;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main_15650 {
static int n,m;
static boolean[] visited;
static int[] sequence;
public static void main(String[] args) throws IOException {
input();
go(1, 1);
}
public static void input() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] temp = br.readLine().split(" ");
n = Integer.parseInt(temp[0]);
m = Integer.parseInt(temp[1]);
sequence = new int[m+1];
visited = new boolean[n+1];
}
public static void go(int index, int depth) {
if(depth == m+1){
print();
return;
}
for(int i=index; i<=n; i++){
if(!visited[i]){
visited[i] = true;
sequence[depth] = i;
go(i,depth+1);
visited[i] = false;
}
}
}
public static void print(){
for(int i=1; i<=m; i++){
System.out.print(sequence[i]+" ");
}
System.out.println();
}
}
Written on March 4, 2021