programmers.co.kr/learn/courses/30/lessons/17681
코딩테스트 연습 - [1차] 비밀지도
비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다
programmers.co.kr
두 수를 비트 연산자 | 를 통해서 합치고
2진법으로 변경하면서 n보다 짧으면 0을 앞에 추가해준 뒤
replace를 통해서 1은 #으로 0은 공백으로 변경해주어서 해결하였습니다.
// 프로그래머스 비밀지도 문제
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for(int i = 0 ; i < n; i++) {
String s1 = staticLengthBinaryString(n, arr1[i] | arr2[i]);
answer[i] = toShapString(s1);
}
return answer;
}
public String staticLengthBinaryString(int length, int number) {
String binaryString = Integer.toBinaryString(number);
StringBuilder temp = new StringBuilder();
for(int i = 1; i <= length - binaryString.length(); i++) {
temp.append("0");
}
return temp.append(binaryString).toString();
}
static String toShapString(String str) {
return str.replace("1", "#").replace("0", " ");
}
}
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 예상 대진표 문제 (자바) (0) | 2021.05.31 |
---|---|
프로그래머스 - 방금그곡 문제 (자바) (0) | 2021.05.08 |
프로그래머스 - 동굴 탐험 문제 (자바) (0) | 2021.05.07 |
프로그래머스 - 호텔 방 배정 문제 (자바) (0) | 2021.05.06 |
프로그래머스 - 불량 사용자 문제 (자바) (0) | 2021.05.06 |