[백준 | Javascript] 11576

박기영·2022년 9월 26일
0

백준

목록 보기
122/127

문제

11576번 문제 링크

solution

const fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().split("\n");

let [A, B] = input[0].trim().split(" ").map((item) => Number(item));

let m = Number(input[1]);

// reverse()를 해서 10진수로 변환하기 편하게 만들어줬다.
let numArr = input[2].trim().split(" ").map((item) => Number(item)).reverse();

let decimal = 0;

// A를 10진수로 표현하기 위한 반복문
for(let i = 0; i < m; i++){
    let num = numArr[i];
    
    decimal += num * (A**i);
}

// 만약 10진수가 0이라면 0을 출력
if(decimal === 0){
    console.log(0);
} else {
    let ans = [];

    // decimal을 B진수로 표현으로 바꾸는 과정
    while(decimal > 0){
        // 10진수를 B로 나눈 나머지를 unshift로 ans 배열에 넣는다.
        // 가장 먼저 들어간 수는 가장 뒤쪽으로 밀리게 된다.
        ans.unshift(decimal % B);
        
        // decimal을 B로 나눈 몫(소수점 아래를 제거한)을 다시 decimal에 할당한다.
        decimal = Math.floor(decimal / B);
    }

    console.log(ans.join(" "));
}

참고 자료

참고 자료 1

profile
나를 믿는 사람들을, 실망시키지 않도록

0개의 댓글