코딩테스트 연습 - [1차] 비밀지도
비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다
programmers.co.kr
① 이진수 변환 메소드 이용
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for(int i=0; i<n; i++){
StringBuilder sb = new StringBuilder();
int temp = arr1[i]|arr2[i];
int[] tempArr = makeBinary(n, temp);
for(int j=0; j<n; j++){
if(tempArr[j]==0)
sb.append(" ");
else
sb.append("#");
}
answer[i] = sb.toString();
}
return answer;
}
private static int[] makeBinary(int n, int num){
int[] binaryArr = new int[n];
int i=n-1;
while(num!=1){
binaryArr[i--] = num%2;
num /= 2;
}
binaryArr[i] = num;
return binaryArr;
}
}
② Integer클래스 이용
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for(int i=0; i<n; i++){
StringBuilder sb = new StringBuilder();
int temp = arr1[i]|arr2[i];
String tempToBinary = String.format("%"+n+"s", Integer.toBinaryString(temp));
char[] tempArr = tempToBinary.toCharArray();
for(int j=0; j<tempArr.length; j++){
if(tempArr[j]=='1')
sb.append("#");
else
sb.append(" ");
}
answer[i] = sb.toString();
}
return answer;
}
}
③ Integer클래스, String.replace() 이용
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for(int i=0; i<n; i++){
answer[i] = String.format("%"+n+"s", Integer.toBinaryString(arr1[i]|arr2[i]))
.replace("1","#").replace("0"," ");
}
return answer;
}
}
'1d-1c > Programmers' 카테고리의 다른 글
Level1_정수 제곱근 판별 (JAVA) (0) | 2020.12.13 |
---|---|
Level1_다트게임 (JAVA) (0) | 2020.12.11 |
Level1_실패율 (C++) (JAVA) (0) | 2020.12.09 |
Level2_카카오프렌즈 컬러링북 (JAVA) (0) | 2020.11.05 |
Level2_기능개발 (C++) (JAVA) (0) | 2020.11.05 |