본문 바로가기
Algorithm

[BJ]10974번: 모든순열(Java)

by 옥돔이와 연근이 2022. 8. 30.
728x90
반응형

10974번: 모든 순열

문제

N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다.

출력

첫째 줄부터 N!개의 줄에 걸쳐서 모든 순열을 사전순으로 출력한다.

예제 입력 1

3

예제 출력 1

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

그냥 순열


🤦‍♀️ My Solution

package 순열조합;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class BJ_10974 {
    static int N;
    static boolean check[];
    static int select[];

    public static void main(String[] args) throws NumberFormatException, IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        N = Integer.parseInt(br.readLine());
        check = new boolean[N];
        select = new int[N];
        permu(0);
    }

    static public void permu(int cnt) {
        // 기저조건
        if (cnt == N) {
            for (int i = 0; i < N; i++) {
                System.out.print(select[i] + " ");
            }
            System.out.println();
            return;
        }

        for (int i = 0; i < N; i++) {
            if (check[i])
                continue;
            check[i] = true;
            select[cnt] = i + 1;
            permu(cnt + 1);
            check[i] = false;
        }
    }

}

728x90

'Algorithm' 카테고리의 다른 글

[BJ] 1182번: 부분수열의 합  (0) 2022.08.30
[BJ] 2003번: 수들의 합2 (Java)  (0) 2022.08.30
[BJ] 1987번: 알파벳(Java)  (0) 2022.08.30
[BJ] 1206: DFS와 BFS(Java)  (0) 2022.08.30
[SWEA] 1247번: 최적 경로(Java)  (0) 2022.08.30