Park DJ
dj0998
Park DJ
전체 방문자
오늘
어제
  • 분류 전체보기 (363)
    • 백준 (363)

공지사항

인기 글

태그

  • 백준 15655
  • Java
  • 백준 2343
  • 백준 1531
  • 백준 24039
  • 백준 1064
  • 자바
  • 백준 8892
  • 백준 7567
  • 백준 15312
  • 백준 6550
  • 백준 7662
  • 백준 16194
  • 백준 2591
  • 백준 2467
  • 백준 1747
  • 백준 3049
  • 백준 12605
  • 백준
  • 백준 4659
  • 백준 16926
  • 백준 1011
  • 백준 1495
  • 백준 1914
  • 백준 15961
  • 백준 3135
  • 백준 12871
  • 백준 10709
  • 백준 14582
  • 백준 2225
hELLO · Designed By 정상우.
Park DJ

dj0998

백준 15657 N과 M (8)(Java)
백준

백준 15657 N과 M (8)(Java)

2023. 2. 2. 03:07

https://www.acmicpc.net/problem/15657

 

15657번: N과 M (8)

N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열

www.acmicpc.net


 

해석 및 팁

 


 

이 문제는 백준 15654 문제와 비슷합니다. 주어진 배열에서 값을 정렬하는 것은 비슷한 점이고 주의해야 할 점은 오른 차순이 아닌 비내림차순이므로 중복을 허용한다는 점입니다.

 


 

Java 코드

 


import java.util.Scanner;
import java.util.Arrays;

public class Main {

  static int n;
  static int m;
  static StringBuilder sb;
  static int[] arr;
  static int[] list;
  
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    sb = new StringBuilder();
    
    n = sc.nextInt();
    m = sc.nextInt();
    arr = new int[m];
    list = new int[n];
    
    for(int i = 0; i < n; i++) {
      list[i] = sc.nextInt();
    }

    Arrays.sort(list);
    

    dfs(0, 0);
    
    System.out.println(sb);
  }

  public static void dfs(int num, int s) {

    if(num == m) {
      for(int i = 0; i < m; i++) sb.append(arr[i]+" ");
      sb.append("\n");
      return;
    }

    for(int i = s; i < n; i++) {
      arr[num] = list[i];
      dfs(num+1, i);
    }
  
  }
}

'백준' 카테고리의 다른 글

백준 14425 문자열 집합(Java)  (0) 2023.02.02
백준 10974 모든 순열(Java)  (0) 2023.02.02
백준 1004 어린 왕자(Java)  (0) 2023.02.02
백준 9375 패션왕 신해빈(Java)  (0) 2023.02.02
백준 13305 주유소(Java)  (0) 2023.02.01
    '백준' 카테고리의 다른 글
    • 백준 14425 문자열 집합(Java)
    • 백준 10974 모든 순열(Java)
    • 백준 1004 어린 왕자(Java)
    • 백준 9375 패션왕 신해빈(Java)
    Park DJ
    Park DJ

    티스토리툴바