본문 바로가기
알고리즘/PROGRAMMERS

비밀지도(Lv.1)

by 현대타운301 2024. 3. 22.

     


     

    문제 설명

     

     

     

    입출력 예시

     

     

    요약

    2진수 형태로 변환 후 합치기

     


     

    풀이

     

    접근 방식

    1. 2진수 형태로 변환

      → toBinaryString()을 통해 decimal to binary 변환

     

    2. 정사각형 배열의 크기만큼 빈공간은 공백으로 채우기

      → StringBuilder의 insert() 메소드를 통해 문자열에 문자 채우기

     


     

    코드리뷰

     

    import java.util.*;
    
    class Solution {
        public String[] solution(int n, int[] arr1, int[] arr2) {
            String s1 = "";
            String s2 = "";
            List<String> list = new ArrayList<>();
            for(int i = 0; i < arr1.length; i++) {
                s1 = Integer.toBinaryString(arr1[i]);	// 10진수 → 2진수 변환
                s2 = Integer.toBinaryString(arr2[i]);
                while(s1.length() < n) {	// 문자열 앞에 공백으로 채우기
                    StringBuilder sb = new StringBuilder(s1);
                    s1 = String.valueOf(sb.insert(0, " "));
                }
                while(s2.length() < n) {
                    StringBuilder sb = new StringBuilder(s2);
                    s2 = String.valueOf(sb.insert(0, " "));
                }
                String s3 = "";
                for(int j = 0; j < s1.length(); j++) {
                    if(s1.charAt(j) == '1' || s2.charAt(j) == '1') {	// 각 문자열의 같은 인덱스에 위치한 문자끼리 비교
                        s3 += "#";	// 하나라도 1이면 '#'
                    } else {
                        s3 += " ";	// 둘 다 0이면 공백
                    }
                }
                list.add(s3);
            }
            String[] answer = new String[list.size()];
            for(int i = 0; i < list.size(); i++) {
                answer[i] = list.get(i);
            }
            return answer;
        }
    }

     

     

     

    '알고리즘 > PROGRAMMERS' 카테고리의 다른 글

    3월에 태어난 여성 회원 목록 출력하기(DB)  (0) 2024.03.22
    숫자 문자열과 영단어(Lv.1)  (0) 2024.03.22
    의상(Lv.2)  (0) 2024.03.22
    캐시(Lv.2)  (0) 2024.03.22
    기능개발(Lv.2)  (1) 2024.03.22