문제
https://school.programmers.co.kr/learn/courses/30/lessons/17681
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for(int i=0; i<arr1.length; i++){
int bit=arr1[i] | arr2[i];
String binaryString = Integer.toString(bit, 2);
binaryString = translate(binaryString, n);
binaryString = binaryString.replace("1","#");
binaryString = binaryString.replace("0"," ");
answer[i]=binaryString;
}
return answer;
}
//이진수 String의 size가 n이하라면 앞에 0을 붙힌다.
String translate(String binaryString, int n){
String s="";
if(binaryString.length()<n){
for(int i=0; i<n-binaryString.length(); i++){
s+="0";
}
}
s+=binaryString;
return s;
}
}
다른 사람 코드는 더 깔끔하게 가독성 있게 짠 것 같다.
다른 사람 풀이코드
public class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for (int i = 0; i < n; i++) {
// 1. arr1과 arr2의 원소들을 이진수로 바꾼뒤, or 비트논리 연산 수행
String str = Integer.toBinaryString(arr1[i] | arr2[i]);
// 2. 5자리의 문자열 형태로 포뱃 변경, 5자리가 안되는 이진수의 나머지는 공백으로 채운다.
str = String.format("%" + n + "s", str);
// 3. 1->"#", 0-> 공백
str = str.replace("1", "#");
str = str.replace("0", " ");
// 4. 한줄 완성
answer[i] = str;
}
return answer;
}
}
'Algorithm (PS) > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Level 1] K번째수(Java) (0) | 2023.08.26 |
---|---|
[프로그래머스 Level 1] 문자열 내 마음대로 정렬하기(Java) (0) | 2023.08.26 |
[프로그래머스 Level 1] 숫자 문자열과 영단어(Java) (0) | 2023.08.26 |
[프로그래머스 Level 1] 시저 암호(Java) (0) | 2023.08.26 |
[프로그래머스 Level 1] 최소직사각형 (Java) (0) | 2023.08.24 |