코딩테스트준비/프로그래머스

[프로그래머스][JAVA] 2018 KAKAO BLIND RECRUITMENT - 비밀지도

소윤파크 2022. 9. 25. 22:39
반응형

풀이

class Solution {
    public String[] solution(int n, int[] arr1, int[] arr2) {
        String[] answer = new String[n];
        
        for (int i = 0; i < n; i++){
            answer[i] = ""; // answer[i]를 빈 무자열로 초기화            
            String arr1Str = Integer.toString(arr1[i], 2);            
            String arr2Str = Integer.toString(arr2[i], 2);
            // 자릿수에 맞게 앞쪽에 0을 채워줌
            while (arr1Str.length() < n || arr2Str.length() < n){
                if (arr1Str.length() < n)
                    arr1Str = "0" + arr1Str;
                if (arr2Str.length() < n)
                    arr2Str = "0" + arr2Str;
            }
            for (int j = 0; j < n; j++){
                // OR 비트 연산을 통해 true/false를 판단
                // true일 때는 answer에 #을 이어붙임
                if (Character.getNumericValue(arr1Str.charAt(j)) != 0
                    | Character.getNumericValue(arr2Str.charAt(j)) != 0)
                    answer[i] += "#";
                // false일 때는 answer에 공백을 이어붙임
                else
                    answer[i] += " ";
            }
            
        }
        
        return answer;
    }
}

 

성능