다희의 코딩 성장일기
[프로그래머스] level1. [1차] 비밀지도 (자바 JAVA) 본문
[ 문제 ] [프로그래머스] level1. [1차] 비밀지도 (자바 JAVA)
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/17681
# 접근 방법 및 풀이
- arr1[]배열과 arr2[]배열에 들어오는 10진수 정수를 2진수 형태로 바꿔주고, OR비트연산을 통해서 구했다.
- Integer.toString(3, 2); 이렇게 하면 정수 3을 2진수 String 값으로 변환해준다.
- 따라서 Integer.toString(arr1[i] | arr2[i], 2)하면 or연산이 되어 계산이 된다.
- String값을 1은 '#'으로 0은 ' '공백으로 replace를 사용해 변경해준다.
- 이때 변환한 String의 길이가 n보다 작을 수가 있다. 예를들어, 1 | 1 은 1로 찍히기 때문에 n자릿수까지 맞춰주어야한다.
- 자세한건 코드참조
# 주의할 점
- 2진수로 변환한 String 자릿수 살펴보기
JAVA 코드
import java.util.*;
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String [n];
for(int i = 0 ; i < arr1.length; i++){
String s = Integer.toString(arr1[i]|arr2[i], 2);
s = s.replace("0", " ");
s = s.replace("1", "#");
if(s.length() != n){
String add = "";
for(int j = 0; j < n-s.length(); j++)
add += " ";
s = add+s;
}
answer[i] = s;
}
return answer;
}
}
REVIEW
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] level1. 위클리챌린지 4주차 (자바 JAVA) (0) | 2021.08.23 |
---|---|
[프로그래머스] level1. 3진법 뒤집기 (자바 JAVA) (0) | 2021.08.22 |
[프로그래머스] level1. 내적 (자바 JAVA) (0) | 2021.08.20 |
[프로그래머스] level1. 두 개 뽑아서 더하기 (자바 JAVA) (0) | 2021.08.20 |
[프로그래머스] level1. 문자열 내마음대로 정렬하기 (자바 JAVA) (0) | 2021.08.20 |
Comments