BOJ[3460] - 이진수 by JavaScript
이진수
문제
언어
- JavaScript
순서도
- 각 테스트케이스마다 입력된 숫자를 이진수로 바꾸고, 1 의 위치를 공백으로 구분해서 출력
문제 풀이 step 1
- JavaScript 에 이진수로 바꾸는 함수를 이용하면 쉽게 풀 수 있는 문제입니다.
- Number.toString(radix)
- 매개변수로 2 와 36 사이의 정수를 넣으면 그 수의 진수로 변환합니다.
Number.toString(2)Number.toString(3)Number.toString(16)
- 문제 풀이에 대한 추가 설명은 주석으로 작성하겠습니다.
Reference.
소스 코드
const input = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split("\n");
// 입력받은 이진수의 1 의 위치를 공백으로 구분해서 반환하는 함수
const getPos = (binaryStr) => {
// 위치가 낮은 것부터 출력하기 위해서 이진수를 역순으로 뒤집기
const str = binaryStr.split("").reverse();
let res = [];
for (let i = 0; i < str.length; i++) {
if (str[i] === "1") res.push(i);
}
return res.join(" ");
};
const solution = (input) => {
let t = Number(input[0]);
let res = "";
let index = 1;
while (t-- > 0) {
// 이진수로 변환
const binaryStr = Number(input[index++]).toString(2);
res += getPos(binaryStr) + "\n";
}
return res;
};
console.log(solution(input));