https://school.programmers.co.kr/learn/courses/30/lessons/17681
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 1
1. Integer.toBinaryString 으로 비트연산 한 결과를 2진수로 바꾼다.
2. replaceAll로 0과 1을 공배고가 #으로 변환
3. 모자란 개수는 필요한 만큼 앞부분에 공백 더해주기
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] ans = new String[n];
for (int i = 0; i < n; i++) {
//Binary로 바꿔서 0은 공백 1을 #으로 변환한다.
ans[i] = Integer.toBinaryString(arr1[i] | arr2[i]);
ans[i] = ans[i].replaceAll("0", " ");
ans[i] = ans[i].replaceAll("1", "#");
//공간이 비는 부분은 필요한 개수만큼 앞에 공백을 넣어주기
while (ans[i].length() < n) {
ans[i] = ' ' + ans[i];
}
}
return ans;
}
다른 풀이
format으로 공백 만들어주기
String.format("%5s","123") >> _ _123
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] result = new String[n];
for (int i = 0; i < n; i++) {
result[i] = Integer.toBinaryString(arr1[i] | arr2[i]);
}
for (int i = 0; i < n; i++) {
result[i] = String.format("%" + n + "s", result[i]);
result[i] = result[i].replaceAll("1", "#");
result[i] = result[i].replaceAll("0", " ");
}
return result;
}
'algorithm > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 연속 부분 수열 합의 개수 JAVA (0) | 2023.01.07 |
---|---|
프로그래머스 - 체육복 (0) | 2022.10.22 |
프로그래머스 - 이상한 문자 만들기 JAVA (0) | 2022.10.20 |
프로그래머스 - 같은 숫자는 싫어 JAVA (0) | 2022.10.19 |
프로그래머스 - 문자열 내림차순으로 배치하기 JAVA (0) | 2022.09.30 |