코딩테스트
[코딩테스트(Java)] 프로그래머스 17681 비밀지도
inhooo00
2025. 3. 6. 17:33
728x90
오늘부터 재활 들어갑니다..
https://school.programmers.co.kr/learn/courses/30/lessons/17681
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
String[] arr1To = new String[n];
String[] arr2To = new String[n];
for (int i = 0; i < n; i++) {
arr1To[i] = String.format("%" + n + "s", Integer.toBinaryString(arr1[i])).replace(" ", "0");
arr2To[i] = String.format("%" + n + "s", Integer.toBinaryString(arr2[i])).replace(" ", "0");
}
for (int i = 0; i < n; i++) {
answer[i] = "";
for (int j = 0; j < n; j++) {
if (arr1To[i].charAt(j) == '1' || arr2To[i].charAt(j) == '1') {
answer[i] += "#";
} else {
answer[i] += " ";
}
}
}
return answer;
}
📍포인트
1. arr1To[i] = String.format("%" + n + "s", Integer.toBinaryString(arr1[i])).replace(" ", "0"); 로 칸 수를 유지하기.
2. 배열이 처음에 null로 들어가있으니, answer[i] = "";로 초기화해주기.
📍삽질
1. toBinaryString() 를 생각하지 못하고 직접 2진수 변환 로직을 구현하다가 1시간 날림.
2. 배열이 null로 초기화되는 사실을 잊고, 그대로 진행하다가 null##### 이런 식으로 나옴.
728x90