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];
for (int i = 0; i < n; i++) {
StringBuilder sb = new StringBuilder();
Long num1 = 0L;
Long num2 = 0L;
String arr1Binary = Integer.toBinaryString(arr1[i]); // 1번 지도 이진수 변환
num1 = Long.parseLong(arr1Binary);
String arr2Binary = Integer.toBinaryString(arr2[i]); // 2번 지도 이진수 변환
num2 = Long.parseLong(arr2Binary);
String sum = String.valueOf(num1 + num2); // 1번 지도 + 2번 지도
if(sum.length() < n) { // 합친 결과의 길이가 n보다 작으면, 작은만큼 앞에 0을 붙임
StringBuilder pad = new StringBuilder();
for (int j = 0; j < n - sum.length(); j++) {
pad.append("0");
}
sum = pad.toString() + sum;
}
for (int j = 0; j < sum.length(); j++) {
if(sum.charAt(j) == '0') { // 0 이면 공백
sb.append(" ");
}else { // 0 아니면 벽#
sb.append("#");
}
}
answer[i] = sb.toString(); // 결과 기록
}
return answer;
}
}
'JAVA > 프로그래머스' 카테고리의 다른 글
34. LEVEL1 - 실패율 (0) | 2021.08.27 |
---|---|
33. LEVEL1 - 크레인 인형뽑기 게임 (0) | 2021.08.27 |
32. LEVEL1 - 키패드 누르기 (0) | 2021.08.26 |
31. LEVEL1 - 직업군 추천하기 (0) | 2021.08.26 |
30. LEVEL 1 - 숫자 문자열과 영단어 (0) | 2021.08.25 |