๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿฆ• ๊ณต๋ฃก์ด ๋˜์ž!

[์ˆœ์—ด] Visited๋ฅผ ์ด์šฉํ•œ ์ˆœ์—ด ๋ณธ๋ฌธ

Development/CodingTest

[์ˆœ์—ด] Visited๋ฅผ ์ด์šฉํ•œ ์ˆœ์—ด

Kirok Kim 2021. 12. 24. 23:47
// arr     ๋ฝ‘๊ธฐ๋ฅผ ํ•˜๋ ค๊ณ  ๋ชจ์€ ๊ฐ’๋“ค
// output  ์ถœ๋ ฅ ๋˜๋Š” ๊ฐ’
// visited ์ค‘๋ณต๊ฐ’ ๋ฐฉ์ง€

public class Permutation {
    public static void main(String[] args) {
        int n = 3;
        int[] arr = {1, 2, 3};
        int[] output = new int[n];
        boolean[] visited = new boolean[n];

        perm(arr, output, visited, 0, n, 3);
			 // Swap ์ˆœ์—ด
       // System.out.println();
       // permutation(arr, 0, n, 3);
    }
    // ์‚ฌ์šฉ ์˜ˆ์‹œ: perm(arr, output, visited, 0, n, 3);
    static void perm(int[] arr, int[] output, boolean[] visited, int depth, int n, int r) {
        if (depth == r) {// 3๊ฐœ๊ฐ€ ๋˜๋ฉด ์ถœ๋ ฅ
            print(output, r);
            return;
        }

        for (int i = 0; i < n; i++) {
            if (visited[i] != true) {
                visited[i] = true;
					      // ์ˆซ์ž ์„ ์ • ์™„๋ฃŒ(์ฒดํฌ)
                output[depth] = arr[i]; 
								// ์ถœ๋ ฅํ•  ์ˆซ์ž ์„ ์ •
								// depth๊ฐ€ ์ถœ๋ ฅํ•  ์ˆซ์ž์˜ ์œ„์น˜
                perm(arr, output, visited, depth + 1, n, r); 
								// ์žฌ๊ท€ํ•จ์ˆ˜ ํ˜ธ์ถœ
                visited[i] = false;     
								// ์ˆซ์ž ์„ ์ • ์ทจ์†Œ
            }
        }
    }

    
    static void print(int[] arr, int r) {// ์ถœ๋ ฅ ๋ฉ”์†Œ๋“œ
        for (int i = 0; i < r; i++)
            System.out.print(arr[i] + " ");
        System.out.println();
    }
}
// Swap ์ˆœ์—ด๊ณผ๋Š” ๋‹ค๋ฅธ ์ ์€ Swap์€ ์ •๋ง ๋ง๊ทธ๋Œ€๋กœ
// ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๊ณ  ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด๊ณ  Visited๋Š” ์ˆœ์„œ๋Œ€๋กœ ๋ฝ‘์•„์„œ ์ถœ๋ ฅ
//๊ฒฐ๊ณผ
1 2 3 
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

์ฐธ๊ณ  : https://bcp0109.tistory.com/14

 

์ˆœ์—ด Permutation (Java)

์ˆœ์—ด ์—ฐ์Šต ๋ฌธ์ œ ์ˆœ์—ด์ด๋ž€ n  ๊ฐœ์˜ ๊ฐ’ ์ค‘์—์„œ r  ๊ฐœ์˜ ์ˆซ์ž๋ฅผ ๋ชจ๋“  ์ˆœ์„œ๋Œ€๋กœ ๋ฝ‘๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด [1, 2, 3]  ์ด๋ผ๋Š” 3 ๊ฐœ์˜ ๋ฐฐ์—ด์—์„œ 2 ๊ฐœ์˜ ์ˆซ์ž๋ฅผ ๋ฝ‘๋Š” ๊ฒฝ์šฐ๋Š” [1, 2] [1, 3] [2, 1] [2, 3] [3,

bcp0109.tistory.com

 

๋ฐ˜์‘ํ˜•
Comments