728x90
문제:https://programmers.co.kr/learn/courses/30/lessons/17681
public class programmers17681 {
public static void main(String[] args) {
int n = 6;
int[] arr1 = {46, 33, 33, 22, 31, 50};
int[] arr2 = {27, 56, 19, 14, 14, 10};
String[] answer = solution(n, arr1, arr2);
for(String s: answer){
System.out.print(s);
}
}
private static String[] solution(int n, int[] arr1, int[] arr2) {
// String[] result = new String[n];
// for (int i = 0; i < n; i++) {
// result[i] = Integer.toBinaryString(arr1[i] | arr2[i]);
// }
//
// for (int i = 0; i < n; i++) {
// result[i] = String.format("%" + n + "s", result[i]);
// result[i] = result[i].replaceAll("1", "#");
// result[i] = result[i].replaceAll("0", " ");
// }
//
// return result;
String[] answer = new String[arr1.length];
int[] answerInt = new int[arr1.length];
String[] newArr1 = new String[arr1.length];
String[] newArr2 = new String[arr2.length];
String length = "%"+n+"s";
for(int i = 0; i < arr1.length; i++){
String a = (String.format(length, Integer.toBinaryString(arr1[i])));
String b = (String.format(length, Integer.toBinaryString(arr2[i])));
a = a.replace(' ', '0');
b = b.replace(' ', '0');
newArr1[i] = (a);
newArr2[i] = (b);
}
StringBuffer sb = new StringBuffer();
for(int i = 0; i < arr1.length; i++){
for(int j = 0; j < n; j++){
if(newArr1[i].charAt(j) != newArr2[i].charAt(j)){
sb.append("#");
}else{
if(newArr1[i].charAt(j)=='1'){
sb.append("#");
}else{
sb.append(" ");
}
}
}
answer[i] = sb.toString();
sb.delete(0, sb.length());
}
return answer;
}
}
진짜 진짜 무식한 방법으로 푼 문제.
다음과 같은 방법으로 풀었다.
1. 우선 for loop을 돌면서 새로운 String 배열에 Integer.toBinaryString()를 사용하여 10진수를 2진수로 변환하여 저장
2. 그 다음 StringBuffer sb를 선언
3. 2중 for loop을 돌면서 2진수 스트링의 각 char를 비교하여 조건에 맞춰 빈칸 혹은 #을 sb에 append
4. sb를 toString()으로 변환한 뒤 answer배열에 저장
5. sb.delete를 사용하여 sb 초기화
그냥 단순하게 '|'(OR) 연산으로 풀 수 있는 문제인데 굉장히 복잡하게 돌아갔다.
728x90
'알고리즘' 카테고리의 다른 글
[백준] 크로아티아 알파벳 [Java/자바] (0) | 2020.04.24 |
---|---|
[백준] 수 정렬하기 - 3 [자바/Java] (0) | 2020.04.16 |
[프로그래머스] 자릿수 더하기 [Java/자바] (0) | 2020.04.05 |
[프로그래머스] 이상한 문자 만들기 [Java/자바] (0) | 2020.04.05 |
[프로그래머스] 수박수박수박수박수박수? [Java/자바] (0) | 2020.04.04 |