2 진 압축 - 알고리즘

바 이 너 리 압축 은 프로 그래 밍 할 때 모든 데 이 터 는 두 가지 상태 만 있 고 dfs 나 bfs 는 시간 이 복잡 할 때 바 이 너 리 압축 데 이 터 를 사용 할 수 있 습 니 다. 특히 2 차원 배열 을 사용 할 수 있 습 니 다.1. 이 진 은 두 개의 배열 을 압축 합 니 다. 예 를 들 어:
-+--
----
----
-+--'+' -> 1,'-' -> 0, 
0100
0000
0000
0100

만약 우리 가 2 진법 으로 int 형식의 데 이 터 를 압축 한다 면, 마침 16 비트 로 표시 할 수 있다.여기 에는 두 가지 표현 방법 이 있 는데 사실은 모두 같다. 하 나 는 위 에서 아래로 높 은 위치 에서 낮은 위치 로 바 뀌 고 하 나 는 위 에서 아래로 낮은 위치 에서 높 은 위치 로 바 뀌 는 것 이다.
      
       int input = 0;
       int[][] data = new int[4][4];
        Scanner sc = new Scanner(System.in);
        String line = "";
        for (int i = 0; i < 4; i++) {
            line = sc.next();
            for (int j = 0; j < 4; j++) {
                data[dataIn++] = line.charAt(j);
            }
        }
        for (int i = 0; i < 16; i++) {
            if (data[i] == '+') {
                input |= (1 << i);
                // System.out.println(Integer.toBinaryString(input));
            }
        }
      
        int input = 0;
        Scanner sc = new Scanner(System.in);
        String line = "";
        for (int i = 0; i < 4; i++) {
            line = sc.next();
            for (int j = 0; j < 4; j++) {
                input = input << 1;
                input = line.charAt(i) == '+' ? input + 1 : input;
            }
        }

좋은 웹페이지 즐겨찾기