** 이 글을 읽음에 앞서 포스팅 된 소스가 100% 정답은 아님을 밝힙니다.
더욱 유능한 분께서 클린 / 최적의 소스를 짜셨을 가능성이 높습니다.
기록용으로 남기며, 참고만 부탁드립니다.
** 프로그래머스는 직접 풀이를 해보시는 것을 권장합니다.
● 문제
난이도[티어] : LEVEL 1
프로그래머스 [1차] 비밀지도
https://school.programmers.co.kr/learn/courses/30/lessons/17681
● 풀이 방법
입력값으로 들어오는 각 배열의 숫자들을 모두 2진수로 변경하고, 해당 배열의 idx 끼리 OR 연산을 처리한 후
해당 2진수의 값을 다시 '#' 와 ' ' 으로 변환해주면 간단하게 풀리는 문제이다.
● 소스 코드
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for(int i = 0; i < n; i++){
long sumMap = arr1[i]|arr2[i];
answer[i] = String.format("%0"+n+"d",Long.parseLong(Long.toBinaryString(sumMap)));
answer[i] = answer[i].replaceAll("0"," ");
answer[i] = answer[i].replaceAll("1","#");
}
return answer;
}
}
단순 구현 문제 + 이진수 문제로 보인다..
● 결과
'프로그래머스 > JAVA11' 카테고리의 다른 글
[프로그래머스 | JAVA ] LV. 3 : 네트워크 (0) | 2024.07.25 |
---|---|
[프로그래머스 | JAVA ] LV. 2 : 타겟 넘버 (0) | 2024.07.24 |
[프로그래머스 | JAVA ] LV. 2 : JadenCase 문자열 만들기 (0) | 2024.07.22 |
[프로그래머스 | JAVA ] LV. 2 : 최댓값과 최솟값 (0) | 2024.07.21 |
[프로그래머스 | JAVA ] LV. 1 : 부족한 금액 계산하기 (0) | 2024.07.17 |