10월 11일 개인공부

안효빈·2022년 10월 11일
0

개인 공부

목록 보기
26/36

프로그래머스 코테

프로그래머스 코테 [[1차] 비밀지도]


import java.util.Arrays;
class Solution {
    public String[] solution(int a, int[] arr1, int[] arr2) {
       
        String[] as1 = new String[arr1.length];
        String[] as2 = new String[arr2.length];

         for(int i = 0; i < arr1.length; i++) {
            as1[i] = Integer.toBinaryString(arr1[i]);
        }
        for(int i = 0; i < arr2.length; i++) {
            as2[i] = Integer.toBinaryString(arr2[i]);
        }
//      as1과 as2에 String형으로 이진수로 바꾼거 배열해둠
        long[] av1 = new long[arr1.length];
        long[] av2 = new long[arr1.length];

        
        
        
        
        for(int i = 0; i < arr1.length; i++) {
            av1[i] = Long.parseLong(as1[i]);
        }
        for(int i = 0; i < arr1.length; i++) {
            av2[i] = Long.parseLong(as2[i]);
        }


        long[] sum = new long[arr1.length];

        
        
        for(int i = 0; i < arr1.length; i++) {
            sum[i] = av1[i] + av2[i];
        }

        
        
        

        System.out.println(Arrays.toString(sum));
        
        
        
        
        
//      문제가지금sum마다 길이가 달라서 포문안에 포문을 못돌림 빈자리에 0을 넣는 식으로 새로해야될거같음

       String[] str = new String[a];
       
       String[] answer = new String[a];
       
       for(int i = 0; i < a; i++) {
    	   answer[i] = "";
    	   str[i] = ""+sum[i];
       }
        
       System.out.println(Arrays.toString(str));
        
       for(int i = 0; i < str.length; i++) {
    	   
    	   for(int b = 0; b < a; b++) {
    		   
    		   answer[i] += "0";
    	   }

		   answer[i] += str[i];
       }
        
        
       System.out.println(Arrays.toString(answer));
        
       String[] sibal = new String[a];
       
       for(int i = 0; i < answer.length; i++) {
	       sibal[i] = "";
       }
       
       for(int i = 0; i < answer.length; i++) {
    	   for(int b = str[i].length(); b < str[i].length()+a; b++) {
    		   sibal[i] += answer[i].charAt(b); //b가 23456이돼야댐
    	   }
       }
       
       System.out.println(Arrays.toString(sibal));
       
       
       String[] ans = new String[a];
       
       for(int i = 0; i < a; i++) {
    	   
    	   ans[i] = "";
    	   
       }
       
       
       
       
       
       for(int i = 0; i < a; i++) {
    	   for(int b = 0; b < a; b++) {
    		   if(sibal[i].charAt(b) == '0'){
    			   ans[i] += " ";
    		   }else {
    			   ans[i] += "#";
    		   }
    		   
    	   }
    	   
       }
       
       System.out.println(Arrays.toString(ans));
       
       
        
        
        return ans;
    }
}

+1점


프로그래머스 코테 [행렬의 덧셈]

+1점


replaceAll의 쓰임

[참고자료] : https://codechacha.com/ko/java-extract-integers-from-string/

문자와숫자가 섞여 가득한 곳에서 숫자만 추출하는 방법.

profile
다들 화이팅

0개의 댓글