백준 11576 base Conversion (NodeJs)

박태준·2019년 12월 30일
0

주의사항
저는 10진법으로 변경하기 위해 Math.pow를 사용했지만

decimal += number[i] * Math.pow(base[0], input[1] - i - 1);

이렇게 간단히 쓰시는 분들도 있음

decimal = decimal * base[0] + number[i];

출력부분을 문자열로 담고 reverse()해주는 방식을 제출했는데 답이 틀렸다고 함(이유 아시는분 가르쳐주세요ㅠㅠ)

while (decimal) {
	output += (decimal % base[1]) + " ";
	decimal = Math.floor(decimal / base[1]);

}
console.log(
output
.split("")
.reverse()
.join("")
.trim()
);

풀이 코드

let input = [];
var require = require("readline")

.createInterface(process.stdin, process.stdout)
.on("line", function(line) {
input.push(line.trim());
})
.on("close", function() {
let base = input[0].split(" ");
let number = input[2].split(" ");
let decimal = 0;
let output = [];
let answer = "";
for (let i = 0; i < input[1]; i++) {
decimal += Number(number[i]) * Math.pow(Number(base[0]), input[1] - i - 1);
}
while (decimal) {
output.push(decimal % base[1]);
decimal = Math.floor(decimal / base[1]);
}
for (let i = output.length - 1; i >= 0; i--) {
if (i !== 0) {
answer += output[i] + " ";
} else {
answer += output[i];
}
}
console.log(answer);
});

profile
js개발 블로그

0개의 댓글