[JAVA] 프로그래머스 Lv1. 비밀지도 - 다른풀이(비트연산자)

2020. 11. 13. 03:28
728x90

class Solution {

    public String[] solution(int n, int[] arr1, int[] arr2) {

        String[] result = new String[n];

        for (int i = 0; i < n; i++) {

            // 비트연산자 OR을 이용해 연산한다. => 두 비트 중 하나가 1일 경우 1을 반환.

            result[i] = Integer.toBinaryString(arr1[i] | arr2[i]);

        }

        for (int i = 0; i < n; i++) {

            result[i] = String.format("%" + n + "s", result[i]);

            result[i] = result[i].replaceAll("1", "#");

            result[i] = result[i].replaceAll("0", " ");

        }

        return result;

    }

}

 

 

*비트 논리 연산자*

 연산자   논리   설명 
& AND 두 비트 모두 1일 경우에만 연산 결과가 1
| OR 두 비트 중 하나만 1일 경우에만 연산결과가 1
^ XOR 두 비트중 하나는 1이고 다른 하나가 0일경우에만 연산결과가 1
~ NOT 비트 반전(보수)

 

 

728x90

BELATED ARTICLES

more