1. Problems
10진수를 2진수로 변환한다.
- 0 <= number < 10
2. Solve
Interger Class의 toBinaryString의 메서드를 이용하지 않고 알고리즘을 작성한다.
위의 메서드를 이용하면 String을 반환하는데 int형 배열로 리턴하도록 작성한다.
3. Code
public class BinaryArrayConverter {
public static void main(String[] args) {
// TODO Auto-generated method stub
countBits(7);
}
public static int[] countBits(int number){
int bin[] = new int[4]; // 배열 size 9의 최대 자리수 4
int s = 0; // 배열의 위치
int mok = 0; // 몫
int nmg = 0; // 나머지
do {
mok = (int)number/2;
nmg = number - mok*2;
bin[s] = nmg;
s = s + 1; // 배열 인덱스 증가.
number = mok; // mok이 0이 아니면 목인 mok을 10진수 number으로 친환하고 반복 실행
}while(mok!=0); // 조건 mok을 0일때까지 반복
print(bin);
return bin;
}
public static void print(int input[]) {
for(int j = input.length-1; j >= 0; --j){
System.out.print(input[j]);
}
}
}
4. Report
진수 변환을 하는 내장 메서드를 이용하지 않고 알고리즘으로 해결한다.
do~while 반복문을 이용해서 mok이 0이 아니면 목인 mok을 10진수 number으로 친환하고 반복 실행한다.
'algorithm' 카테고리의 다른 글
[프로그래머스] 전화번호 목록 (0) | 2021.04.22 |
---|---|
[자유] 숫자 배열 비교 (0) | 2021.04.04 |
[자유] 이진 탐색 구현 (0) | 2021.02.13 |
[leetCode] 29. Divide Two Integers (0) | 2021.01.23 |
[leetCode] 27. Remove Element (0) | 2021.01.22 |