공부 흔적남기기

프로그래머스 [1차] 비밀지도 본문

코테/프로그래머스

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

65살까지 코딩 2022. 1. 17. 00:26
728x90
반응형
class Solution {
    public String[] solution(int n, int[] arr1, int[] arr2) {
        
        // 일단  지도1, 지도 2, 정답지도를 0으로 채워진 n*n배열 만들기
        int[][] map1 = new int[n][n];
        int[][] map2 = new int[n][n];
        int[][] realMap = new int[n][n];
        // arr1과 arr2 2진법으로 된 암호를 풀어서 지도1과 지도2에 저장함
        for (int i = 0; i < n; i++) {
            map1[i] = binary(arr1[i], n);
            map2[i] = binary(arr2[i], n);
        }
        //map1과 map2의 값을 각각 비교하면서 둘다 0이라면 0 하나라도 1이라면 정답지도에 #을 넣어줌
        for(int i =0; i<n; i++){
            for(int j=0; j<n; j++){
                if(map1[i][j] ==1 || map2[i][j] ==1){
                    realMap[i][j] = 1;
                }else {
                    realMap[i][j] = 0;
                }
            }
        }
        
        String[] answer = new String[n];
        int i = 0;
        String str = "";
        //진짜 지도를 배열을 통해 돌면서 1이라면 #을 넣어주고
        //0이라면 공백을 채워줌
        for (int[] ints : realMap) {
            str = "";
            for (int anInt : ints) {
                if(anInt ==1){
                    str += "#";
                }else{
                    str += " ";
                }
            }
            answer[i] = str;
            System.out.println(str);
            i++;
        }



        return answer;
    }
    //숫자를 2진수로 바꿔주는 함수
    public int[] binary(int n, int m) {
        //n은 숫자를 받고 행 혹은 열의 길이를 받음
        int[] tmp = new int[m];
        int i = 0;
        //이 부분이 2진법으로 바꿔주는 부분인데
        //직관적으로 이해가 잘 안되서
        //그냥 외워서 익숙해져버림
        while (n != 0) {
            tmp[m - 1 - i] = n % 2;
            n = n / 2;
            i++;
        }
        for (int i1 : tmp) {
            System.out.print(i1);
        }
        System.out.println();
        return tmp;
    }
}

문제 : https://programmers.co.kr/learn/courses/30/lessons/17681

 

코딩테스트 연습 - [1차] 비밀지도

비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다

programmers.co.kr

 

728x90
반응형

'코테 > 프로그래머스' 카테고리의 다른 글

프로그래머스 [1차] 다트게임  (0) 2022.01.17
프로그래머스 키패드 누르기  (0) 2022.01.17
프로그래머스 폰켓몬  (0) 2022.01.17
프로그래머스 체육복  (0) 2022.01.17
프로그래머스 실패율  (0) 2022.01.17