class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for (int i=0;i<arr1.length;i++) {
String firstLine = Integer.toBinaryString(arr1[i]);
String secondLine = Integer.toBinaryString(arr2[i]);
while (firstLine.length()< n) {
firstLine = "0"+firstLine;
}
while (secondLine.length()< n) {
secondLine = "0"+secondLine;
}
StringBuilder sb = new StringBuilder();
for (int j=0;j<n;j++) {
if (firstLine.charAt(j) == '1' || secondLine.charAt(j) == '1') {
sb.append("#");
} else {
sb.append(" ");
}
}
answer[i] = sb.toString();
}
return answer;
}
}
효율성은 생각하지 않고 일단 풀어보자는 마인드로 풀었다. 풀고 나서 다른 분들의 풀이를 보니 비트연산으로 코드라인을 나에 1/3가까이 줄였다.
출처 : 카카오 , 프로그래머스 알고리즘