728x90
반응형
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
String[] arrNum1 = new String[n]; // arr1의 이진수를 담을 배열
String[] arrNum2 = new String[n]; // arr2의 이진수를 담을 배열
for(int i=0; i<n; i++){ // 이진수로 바꿔주는 작업
String a = String.valueOf(Integer.toString(arr1[i] ,2));
String b = String.valueOf(Integer.toString(arr2[i] ,2));
if(a.length()<n){ // 이진수가 한 변의 길이보다 작은 경우
String[] aNum = new String[n];
String d = "";
for(int j=0; j<n; j++){
if(j>=0 && j<n-a.length()){
aNum[j] = "0";
}
else{
aNum[j] = a.charAt(j-(n-a.length()))+"";
}
}
for(String k : aNum){
d+=k;
}
arrNum1[i] = d;
}else{
arrNum1[i] = a;
}
if(b.length()<n){ // 이진수가 한 변의 길이보다 작은 경우
String[] bNum = new String[n];
String d = "";
for(int j=0; j<n; j++){
if(j>=0 && j<n-b.length()){
bNum[j] = "0";
}
else{
bNum[j] = b.charAt(j-(n-b.length()))+"";
}
}
for(String k : bNum){
d+=k;
}
arrNum2[i] = d;
}else{
arrNum2[i] = b;
}
}
for(int i=0; i<n; i++){
String a = "";
String[] n1 = arrNum1[i].split("");
String[] n2 = arrNum2[i].split("");
for(int j=0; j<n1.length; j++){
if(n1[j].equals("1") || n2[j].equals("1")){
a+="#";
}
else{
a+=" ";
}
}
answer[i] = a;
}
return answer;
}
}
728x90
반응형
'알고리즘 문제풀이 > Programmers - 자바' 카테고리의 다른 글
프로그래머스 - K번째수 (0) | 2023.03.29 |
---|---|
프로그래머스 - 문자열 내 마음대로 정렬하기 (0) | 2023.03.29 |
프로그래머스 - 최소직사각형 (0) | 2023.03.28 |
프로그래머스 - 삼총사 (0) | 2023.03.28 |
프로그래머스 - 예산 (0) | 2023.03.28 |