-
[백준 10829번] 이진수 변환 (feat. NodeJS)Development/Program Solving 2021. 2. 5. 15:38728x90
문제
풀이
반복적으로 2로 나누기를 하므로, 재귀 알고리즘을 사용해서 풀었다.
N / 2 === 1 일 때 더 이상 나누기를 못하니 종료조건으로 설정했다.
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); let input; let result = ""; const onInput = (value) => (input = parseInt(value)); const binaryNumber = (number) => { if (number === 1) { return (result += number); } else { result += number % 2; return binaryNumber(Math.floor(number / 2)); } }; const onClose = () => { const answer = binaryNumber(input); console.log(Array.from(answer).reverse().join("")); process.exit(); }; rl.on("line", onInput).on("close", onClose);
재귀 알고리즘 학습을 위해 백준에서 제일 쉬운 재귀 문제를 풀어봤다.
그래도 이건 한 15분 안에 풀어서 다행이다.
재귀 개념은 파악한 것 같은데 심화로 들어가면 규칙을 못 찾겠다....
더 공부해야지
728x90'Development > Program Solving' 카테고리의 다른 글
[백준 단계별로 풀어보기] 1차원 배열 with C# (0) 2023.07.11 [백준 단계별로 풀어보기] 반복문 with C# (0) 2023.07.10 [백준 2447번] 별 찍기 - 10 (feat. NodeJS) (2) 2021.02.05 [백준 16395번] 파스칼의 삼각형 (feat. NodeJS) (0) 2021.01.08 [백준 10872번] 팩토리얼 (feat. NodeJS) (0) 2021.01.07