네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다.
네오가 프로도의 비상금을 손에 넣을 수 있도록, 비밀지도의 암호를 해독하는 작업을 도와줄 프로그램을 작성하라.
입력으로 지도의 한 변 크기 n 과 2개의 정수 배열 arr1, arr2가 들어온다.
원래의 비밀지도를 해독하여 '#', 공백으로 구성된 문자열 배열로 출력하라.
나의 코드
import java.util.Arrays; class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String[] answer = new String[n]; int[][] a1 = new int[n][n]; int[][] a2 = new int[n][n]; Arrays.fill(answer, ""); for(int i = 0; i < n; i++) { for(int j = n-1; j >= 0; j--) { if(arr1[i] / Math.pow(2, j) >= 1) { a1[i][j] = 1; arr1[i] -= Math.pow(2, j); } else { a1[i][j] = 0; } if (arr2[i] / Math.pow(2, j) >= 1){ a2[i][j] = 1; arr2[i] -= Math.pow(2, j); } else { a2[i][j] = 0; } if(a1[i][j] == 1 || a2[i][j] == 1) { answer[i] += "#"; } else { answer[i] += " "; } } } return answer; } }
다른 사람 코드