느려도 한걸음씩

문제 15 - 10진수를 2진수로 변환하기(스택) 본문

알고리즘/코테대비 100문제

문제 15 - 10진수를 2진수로 변환하기(스택)

hoj0806 2025. 2. 14. 02:31

문제 

10진수를 입력받아 2진수로 변환해 반환하는 solution() 함수를 구현하세요.

 

제약조건

decimal은 1 이상 10억 미만의 자연수이다.

 

입출력 예

decimal변환값

10 1010
27 11011
12345 11000000111001

 

 

내 정답 코드

function solution(number) {
    let stack = []
    while(number !== 0) {
        stack.push(number % 2)
        number = Math.floor(number / 2)
    }
    
    return (stack.reverse().join(''))
}

 

풀이

숫자를 1이 될때까지 2로 나누는데( n = Math.floor(number/ 2)) 2로 나눈 나머지를 스택에 하나씩 저장하고 그 값들을 거꾸로 읽으면 10진수가 2진수로 변환된다