[코딩테스트][백준] 🔥 백준 15650번 "N과 M (2)" 문제: Java로 완벽 해결하기! 🔥

김상욱·2024년 8월 14일
post-thumbnail

문제 링크

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

🕒 Java 풀이시간: 20분

import java.util.*;
import java.lang.*;
import java.io.*;

// The main method must be in a class named "Main".
class Main {
    public static List<int[]> generateCombinations(int[] arr,int m){
        List<int[]> combinations=new ArrayList<>();
        int[] combination=new int[m];
        generateCombination(combinations,0,0,m,arr,combination);

        return combinations;
    }
    public static void generateCombination(List<int[]> combinations,int index,int start,int m,int[] arr,int[] combination){
        if(index==m){
            combinations.add(combination.clone());
            return;
        }
        for(int i=start;i<arr.length;i++){
            combination[index]=arr[i];
            generateCombination(combinations,index+1,i+1,m,arr,combination);
        }
    }
    
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int m=sc.nextInt();
        int[] arr=new int[n];
        for(int i=0;i<n;i++){
            arr[i]=i+1;
        }
        List<int[]> combinations=generateCombinations(arr,m);
        StringBuilder sb=new StringBuilder();
        for(int[] combination :combinations){
            for(int k:combination){
                sb.append(k);
                sb.append(" ");
            }
            sb.append('\n');
        }
        System.out.println(sb.toString());
    }
}

조합을 구현해서 출력하면 되는 문제이다.

이렇게 Java로 백준의 "N과 M (2)" 문제를 해결해보았습니다. 코드와 개념 설명을 참고하여 문제를 해결하는 데 도움이 되셨길 바랍니다! 😊

0개의 댓글