자료구조&알고리즘/프로그래머스
프로그래머스 - [1차] 비밀지도 (JAVA)
yong_ღ'ᴗ'ღ
2023. 11. 13. 17:34
https://school.programmers.co.kr/learn/courses/30/lessons/17681
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
접근방식)
1. 배열의 길이 n만큼 반복문을 수행한다.
2. 정수 배열 2개의 각 숫자를 이진수로 바꾼다.
배열의 길이 n만큼 이진수의 길이를 맞춰줘야 하므로, n만큼 앞부분에 0을 채워준다.
3. n만큼 반복문을 수행하면서, 이진수의 각 자릿수를 비교하여 StringBuilder에 벽과 공백을 추가해주면 된다.
둘 중에 하나라도 1이면 벽이므로 #를 추가해주고,
둘 다 0이라면, 공백을 추가해준다.
4. StringBuilder를 정답 배열에 저장한다.
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
StringBuilder sb;
for (int i = 0; i < n; i++) {
sb = new StringBuilder();
StringBuilder s1 = new StringBuilder(Integer.toString(arr1[i], 2));
StringBuilder s2 = new StringBuilder(Integer.toString(arr2[i], 2));
for (int j = s1.length(); j < n; j++)
s1.insert(0, "0");
for (int j = s2.length(); j < n; j++)
s2.insert(0, "0");
for (int j = 0; j < n; j++) {
if (s1.charAt(j) == '1' || s2.charAt(j) == '1')
sb.append('#');
else
sb.append(' ');
}
answer[i] = sb.toString();
}
return answer;
}
}