본문 바로가기

algorithm

[자유] 10진수 2진수 변환 알고리즘

1. Problems

 

10진수를 2진수로 변환한다. 

  • 0 <= number < 10

2. Solve

 

Interger Class의 toBinaryString의 메서드를 이용하지 않고 알고리즘을 작성한다.

참고) Interger Class가 제공하는 진수 변환 메서드

위의 메서드를 이용하면 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