1차 비밀지도(java)

최준근·2021년 12월 27일
0

java알고리즘

목록 보기
32/63

문제설명


생각하기

  1. 10진수를 2진수로 바꾸는 것

내 풀이

class Solution {
    public String[] solution(int n, int[] arr1, int[] arr2) {
        String map1 = "";
        String map2 = "";
        String[] result = new String[n];
        StringBuilder sb = new StringBuilder();
        
        for(int i=0; i<n; i++){
            map1 = String.format("%0"+n+"d",Integer.parseInt(Integer.toBinaryString(arr1[i]))); //2진수 변환
            map2 = String.format("%0"+n+"d",Integer.parseInt(Integer.toBinaryString(arr2[i])));
            for(int j=0; j<n; j++){
                 //map1의 2진수를 가져와 0~j까지 1인지0인지 확인
                if(map1.charAt(j) =='0' && map2.charAt(j) =='0') sb.append(" ");
                else sb.append("#");
            } 
            result[i] = sb.toString();
            sb.setLength(0);
        }
        
        return result;
    }
}

결과는?

어째서인지 오류가 난다. 그것도 런타임 에러 이유를 찾지 못했다..
아시는분은 댓글로 알려주시면 감사하겠습니다.
다른 분의 풀이를 보자마자 나는 충격먹어버렸다 ..ㅋㅋㅋㅋ


class Solution {
    public String[] solution(int n, int[] arr1, int[] arr2) {
        String[] answer = new String[n];
        
        for(int i = 0; i < n; i++) {
            answer[i] = Integer.toBinaryString(arr1[i] | arr2[i]);
            answer[i] = String.format("%"+n+"s", answer[i]);
            answer[i] = answer[i].replace("1", "#");
            answer[i] = answer[i].replace("0", " ");
        }
        
        return answer;
    }
}

이...이게뭐야 비ㅣ트연산자!! 그랬다.. 카카오는 기초 중의 기초가 탄탄한 사람을 뽑고 싶어 하는거다. 머리를 식히면서 다시 풀어봐야겠다.

profile
느려도 좋으니 꾸준하게

0개의 댓글