반응형
https://programmers.co.kr/learn/courses/30/lessons/17681
[ 문제풀이 ]
정말로 간단한 문제이다. 10진수를 2진수 형태로 표현하는 방법만 안다면 쉽게 해결할 수 있다.
방법은 간단하다. 10진수를 원하는 길이(n) 만큼 2로 나눠주면 된다. 2로 나눠주면서 나머지를 출력하면 2진수로 표현한 값이 나온다. 단, 출력은 마지막 나머지부터 역순으로 출력해줘야 한다.
매번 나눌 때마다 두 수의 나머지 중 1이 하나라도 존재한다면 "#"을 삽입해주면 되고 존재하지 않는다면 " "을 삽입해주면 된다.
import java.util.*;
class Solution {
public String[] solution(int n, int[] arr1, int[] arr2) {
String[] answer = new String[n];
for (int i = 0; i < n; ++i) {
StringBuilder decode = new StringBuilder();
//n만큼의 길이가 필요하기 때문에 n번 돌려줌
for (int j = 0; j < n; ++j) {
int first = arr1[i] % 2;
int second = arr2[i] % 2;
arr1[i] /= 2;
arr2[i] /= 2;
//제일 끝자리부터 채워지기 때문에 맨 앞에 삽입해줌
if (first == 1 || second == 1) {
decode.insert(0, "#");
} else {
decode.insert(0, " ");
}
}
answer[i] = decode.toString();
}
return answer;
}
}
반응형
'Problem Solving > 카카오 블라인드 기출' 카테고리의 다른 글
2018 - [3차] 방금그곡 (0) | 2021.08.07 |
---|---|
2018 - [1차] 다트 게임 (0) | 2021.08.07 |
2018 - [1차] 캐시 (0) | 2021.08.07 |
2018 - [1차] 프렌즈4블록 (0) | 2021.08.07 |
2018 - [1차] 셔틀버스 (0) | 2021.08.07 |
댓글