


처음에 2차원배열로 생각하여 arr1과 arr2에 해당하는 배열을 통해서 정수를 추출해 직접 이진수로 변환하는 문제 풀이를 풀어보고자 했지만, 이진수로 변환후에 각 배열에 집어넣는 과정에서 조건등에 해당하는 코드를 작성하지 못하여 조원들에게 도움을 청하였다. 또한 이해가 되지 않는 부분이 있다보니 문제 진행하는데 어려운 부분이 있었다.
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for (int i = 0; i < n; i++) {
String format = "%" + n + "s";
String binary = Integer.toBinaryString(arr1[i] | arr2[i]);
answer[i] = String.format(format, binary);
answer[i] = answer[i].replaceAll("1", "#");
answer[i] = answer[i].replaceAll("0", " ");
}
return answer;
}
}
우선 toBinaryString()이라는 메서드를 통해 이진법수로 변환이 가능하다. 각 배열의 원소들을 이진수로 변환한 뒤 or 비트논리연산 수행한다. 이후에 5자리의 문자열 형태로 포맷 변경, 5자리가 안되는 나머지는 공백으로 채운다. 이진법의 수 중 1과 0을 각각 "#"과 " ", 공백의 형태로 바꾼다.
%를 붙여 문자열에 사용하면 그 위치에 변수의 값을 형식화 하여 대입 가능