본문 바로가기

Algorithm/Implementation

(Javascript) - 백준(BOJ) 11005번 : 진법 변환 2

반응형

www.acmicpc.net/problem/11005

 

11005번: 진법 변환 2

10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 ��

www.acmicpc.net

진법을 변환해보는 문제였습니다.

 

풀이방법

 1. parseInt함수로 10진수로 입력된 문자열을 parseInt로 만들어주고 나온 결과를 toString함수에 넣어 b진수로 변환한 결과를 저장합니다.

 2. 그 결과의 길이만큼 loop를 돌며 출력하는데 알파벳 소문자에 해당하는 부분이 나오면 toUpperCase함수를 사용해 대문자로 수정해서 출력해줍니다.

 

Code

process.stdin.resume();
process.stdin.setEncoding("utf8");

let reader = require("readline").createInterface({
  input: process.stdin,
  output: process.stdout,
});

reader.on("line", (line) => {
  const n = line.split(" ")[0];
  const b = line.split(" ")[1];

  const answer = parseInt(n, 10).toString(b);
  for (let i = 0; i < answer.length; i++) {
    if ("a" <= answer[i] && answer[i] <= "z") {
      process.stdout.write(answer[i].toUpperCase());
    } else process.stdout.write(answer[i]);
  }
  reader.close();
});