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;
}
}
풀이 방법
- 각각의 숫자를 n 자리의 이진값으로 변환.
- toBinaryString()를 그대로 변환하면 맨 앞자리의 0이 사라짐. 이 점 유의할 것.
- arr1과 arr2의 첫 번째 값의 각 자리값을 숫자로 변환 후 더함.
- 덧셈 결과가 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 |