๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

1. ๋ถ€๋ถ„์ง‘ํ•ฉ - ๋น„ํŠธ๋งˆ์Šคํ‚น

int[] arr = {1, 2, 3, 4, 5};


int length = arr.length; 		//2์˜ 5์Šน
System.out.println(1<<length); 		//32

for (int i=0; i<(1<<length); i++) {		// ๋ถ€๋ถ„์ง‘ํ•ฉ์˜ ๊ฐœ์ˆ˜
    for (int j=0; j<length; j++) {
        if ((i & (1<<j)) != 0) {		// ์กด์žฌํ•œ๋‹ค
            // TODO~~
        }
    }
}

 

2. ์ˆœ์—ด - ๋น„ํŠธ๋งˆ์Šคํ‚น

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

public class Main {

    static int[] arr = {1, 2, 3, 4, 5};
    static int[] tgt = new int[3];

    public static void main(String[] args) throws Exception {
        System.out.println("test:"+(18 & (1<<3)));  //0

        perm(0, 0);
    }

	// ์ˆœ์—ด - ๋น„ํŠธ๋งˆ์Šคํ‚น
    static void perm(int idx, int flag) {
        if (idx == 3) {
            System.out.println(Arrays.toString(tgt));
            return;
        }
        for (int i=0; i<arr.length; i++) {
            if ((flag & (1<<i)) != 0) continue;
            tgt[idx] = arr[i];
            perm(idx+1, flag|1<<i);
        }
    }
}