[JAVA] 코딩테스트 합격자되기 자바편 : 10진수를 2진수로 변환하기

조예빈·2024년 7월 16일
0

Coding Test

목록 보기
57/138

10진수를 2진수로 변환하려면 2로 계속 나누고, 나눈 나머지를 스택에 넣고 이것을 꺼내오면 된다. 그림으로 설명하면 다음과 같다.

여기서의 6,3은 각각 몫이고, 옆에 적힌 1,0은 나머지이다. 책에 나오는 그림을 인용하면 다음과 같다.

이 문제에서는 스택에 저장할 데이터를 찾아 저장하는 것이 관건이다. 즉, 나머지를 스택에 저장하고 하나씩 꺼내서 return해 주면 되는 것이다.

자바 코드로 작성한 결과는 다음과 같다.

import java.util.Stack;

public class num09 {
    public static void main(String[] args){
        //10진수를 2진수로 변환
        Stack<Integer> stack = new Stack<>();
        int num = 13;
        int moc = 0; //몫
        int nam = 0 ;//나머지
        StringBuffer sb = new StringBuffer();
        while (true){
            moc = num / 2;
            nam = num % 2;
            stack.push(nam);
            num = moc;
            if(moc == 0){
                break;
            }
        }
        while(!stack.isEmpty()){
            sb.append(stack.pop()).append(" ");
        }
        System.out.println(sb);
    }
}

profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러

0개의 댓글