본문 바로가기

알고리즘/카카오

비밀지도

반응형

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

 

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

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

programmers.co.kr


class Solution {
  public String[] solution(int n, int[] arr1, int[] arr2) {
    	      String[] answer = new String[n];
	      String[] cmp = new String[n];
	      
	      String zero = "0";
	      String[] st1 = new String[n];
	      String[] st2 = new String[n];
	      
	      for(int i=0; i<arr1.length; i++) {
	    	StringBuilder sb1 = new StringBuilder();
	    	StringBuilder sb2 = new StringBuilder();
	    	String value1 = Integer.toBinaryString(arr1[i]);
	    	String value2 = Integer.toBinaryString(arr2[i]);
	    	
	    	if(value1.length() != n) {
	    		for(int j=0; j<n-value1.length(); j++) {
	    			sb1.append(zero);
	    		}
	    	}
	    	if(value2.length() != n) {
	    		for(int j=0; j<n-value2.length(); j++) {
	    			sb2.append(zero);
	    		}
	    	}
	    	
	    	sb1.append(value1);
	    	sb2.append(value2);
	    	st1[i] = sb1.toString();
	    	st2[i] = sb2.toString();
	      }
	      
	      
	      
	      for(int i=0; i<n; i++) {
	    	  StringBuilder sb = new StringBuilder();
	    	  
	    	  char[] ch1 = st1[i].toCharArray();
	    	  char[] ch2 = st2[i].toCharArray();
	    	  
	    	  
	    	  for(int j=0; j<ch1.length; j++) {
	    		  if(ch1[j] == '1' || ch2[j] == '1') {
	    			  sb.append('1');
	    		  } else {
	    			  sb.append('0');
	    		  }
	    	  }
	    	  cmp[i] = sb.toString();
	      }
	      
//	      for(int i=0; i<n; i++) {
//	    	  System.out.print(cmp[i] + " ");
//	      }
	      
	      
	      for(int i=0; i<n; i++) {
	    	  StringBuilder sb = new StringBuilder();
	    	  
	    	  char[] temp = cmp[i].toCharArray();
	    	  
	    	  for(int j=0; j<temp.length; j++) {
	    		  if(temp[j] == '1') {
	    			  sb.append('#');
	    		  } else {
	    			  sb.append(' ');
	    		  }
	    	  }
	    	  answer[i] = sb.toString();
	      }
	      
	      for(int i=0; i<n; i++) {
	    	  System.out.print(answer[i] + " ");
	      }
	      
	      return answer;
  }
}
반응형

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

키패드 누르기  (0) 2020.08.20
오픈채팅방  (0) 2020.05.29
다트게임  (0) 2020.05.24
크레인 인형뽑기 게임  (0) 2020.05.17
실패율  (0) 2020.05.15