천리길도 한걸음부터

문제09 10진수를 2진수로 변환하기⭐ 본문

코딩 테스트 합격자 되기_자바💜

문제09 10진수를 2진수로 변환하기⭐

밤연양갱 2024. 8. 15. 22:07
- 저자 권장 시간 : 30
- 권장 시간 복잡도 : O(logN)
- 출제 : 저자출제

import java.util.Stack;

class Solution {

    public static String solution(int decimal) {
        Stack<Integer> stack = new Stack<>();

        while (decimal > 0) {
            int remainder = decimal % 2;
            stack.push(remainder);
            decimal /= 2;
        }

        // String의 + 연산은 시간 복잡도 측면에서 성능이 좋지 않음
        // 따라서 StringBuilder를 사용했음
        StringBuilder sb = new StringBuilder();
        while (!stack.isEmpty()) {
            sb.append(stack.pop());
        }

        return sb.toString();
    }
}

 

다양한 풀이방법 존재..

toBinaryString() API를 사용할 수도 있고, 스택을 사용하지 않고도 풀 수 있음...

책에서 소개한 방법 외의 다른 풀이로도 풀어보기