반응형
Notice
Recent Posts
Recent Comments
Link
지구정복
[브루트포스, 백트래킹] 백준 - N과 M (7) 본문
728x90
반응형
https://www.acmicpc.net/problem/15656
-문제해설
기존 문제와 같다... 그냥 정렬만 해주면 된다.!
-자바
package bruteforce;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class BJ15656 {
static int n, m;
static int[] arr, ans;
static StringBuilder sb = new StringBuilder();
public static void dfs( int depth ) {
if( depth == m ) {
for( int val : ans ) sb.append( val ).append( " " );
sb.append( "\n" );
return;
}
for( int i=0; i<n; i++ ) {
ans[depth] = arr[i];
dfs( i, depth+1 );
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer( br.readLine() );
n = Integer.parseInt( st.nextToken() );
m = Integer.parseInt( st.nextToken() );
arr = new int[n];
ans = new int[m];
st = new StringTokenizer( br.readLine() );
for( int i=0; i<n; i++ ) arr[i] = Integer.parseInt( st.nextToken() );
Arrays.sort( arr );
dfs( 0 );
System.out.println( sb );
}
}
-파이썬
from sys import stdin
def dfs( depth ):
global n, m, arr, ans
if depth == m:
print( ' '.join( map(str, ans) ) )
return
for i in range( 0, n ):
ans[depth] = arr[i]
dfs( depth+1 )
input = stdin.readline
n, m = map(int, input().split())
arr = list( map(int, input().split()) )
ans = [0] * m
arr.sort()
dfs( 0 )
728x90
반응형
'데이터 엔지니어링 정복 > Algorithm' 카테고리의 다른 글
[브루트포스&백트래킹] 백준 - N과 M (8) (0) | 2021.09.01 |
---|---|
[브루트포스, 백트래킹] 백준 - N과 M (2) (0) | 2021.08.31 |
[브루트포스, 백트래킹] 백준 - N과 M (6) (0) | 2021.08.31 |
[브루트포스, 백트리킹] 백준 - N과 M (5) (0) | 2021.08.31 |
[브루트포스, 백트래킹] 백준 - N과 M (4) (0) | 2021.08.31 |
Comments