[코딩테스트][백준] 🔥 백준 10974번 "모든 순열" 문제: Python과 Java로 완벽 해결하기! 🔥

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

문제 링크

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

🕒 Python 풀이시간: 10분

from itertools import permutations

n=int(input())
permus=list(permutations(range(1,n+1),n))
for permu in permus:
    print(*permu)

🕒 Java 풀이시간: 25분

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[]> generatePermutations(int[] arr,int r){
        List<int[]> permutations=new ArrayList<int[]>();
        int[] permutation=new int[r];
        boolean[] used = new boolean[arr.length];
        generatePermutation(arr,0,r,permutation,used,permutations);

        return permutations;
    }
    public static void generatePermutation(int[] arr,int index,int r,int[] permutation,boolean[] used,List<int[]> permutations){
        if(index==r){
            permutations.add(permutation.clone());
            return;
        }
        for(int i=0;i<arr.length;i++){
            if(!used[i]){
                used[i]=true;
                permutation[index]=arr[i];
                generatePermutation(arr,index+1,r,permutation,used,permutations);
                used[i]=false;
            }
        }
    }
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] arr=new int[n];
        for(int i=1;i<=n;i++){
            arr[i-1]=i;
        }
        List<int[]> permutations=generatePermutations(arr,n);
        StringBuilder answer=new StringBuilder();
        for(int[] permutation : permutations){
            for(int k : permutation){
                answer.append(k);
                answer.append(" ");
            }
            answer.append("\n");
        }
        System.out.println(answer.toString());
    }
}

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

0개의 댓글