class Solution {
    public String[] solution(int n, int[] arr1, int[] arr2) {
        String[] answer = new String[arr1.length];
        for (int i = 0; i < n; i++){
            String result = "";
            // 5자리 이진수로 변환하고 앞의 0 유지.
            String a1 = String.format("%" + n +"s", Integer.toBinaryString(arr1[i])).replace(" ","0");
            String a2 = String.format("%" + n + "s", Integer.toBinaryString(arr2[i])).replace(" ","0");
            
            for (int j = 0; j < a1.length(); j++){
                // 문자를 숫자로 변환
                int num1 = a1.charAt(j) - '0';
                int num2 = a2.charAt(j) - '0';
                num1 += num2;
                // 벽과 공백 구별
                if (num1 >= 1) result += "#";
                else result += " ";
            }
            answer[i] = result;
        }
        return answer;
    }
}

 

풀이 방법

  1. 각각의 숫자를 n 자리의 이진값으로 변환.
    • toBinaryString()를 그대로 변환하면 맨 앞자리의 0이 사라짐. 이 점 유의할 것.
  2. arr1과 arr2의 첫 번째 값의 각 자리값을 숫자로 변환 후 더함.
  3. 덧셈 결과가 1 이상이라면 #, 아니면 공백.

'Coding Test' 카테고리의 다른 글

[python] ISBN  (1) 2025.08.28
[java] 완주하지 못한 선수  (0) 2024.07.02
[java] 푸드 파이트  (0) 2024.07.02
[java] LinkedHashSet  (0) 2024.07.01
[Java] toCharArray()  (0) 2024.07.01

+ Recent posts