BOJ[11816] - 8진수, 10진수, 16진수 by JavaScript
8진수, 10진수, 16진수
문제
언어
- JavaScript
순서도
- 주어지는 정수 X 의 진수에 맞게 10진수로 변환해서 출력
문제 풀이 step 1
- 8진수, 10진수, 16진수 중에 하나인 정수 X가 주어집니다. 이 정수 X를 10진수로 변환해서 출력하는 문제입니다.
- parseInt() 함수를 사용해서 각 진수에 맞게 변환 후 출력하면 정답입니다.
- ‘0x’로 시작하는 정수는 16진수로 그에 맞게 parseInt(string, 16) 으로 변환하고,
- ‘0’ 으로 시작하는 정수는 8진수로 그에 맞게 parseInt(string, 8) 로 변환하면 됩니다.
- 추가 설명은 주석으로 작성하겠습니다.
문제 풀이 step 2
- parseInt(string, radix)
- string을 radix진법으로 읽어서, 10진법으로 변환 후 return하는 함수
- string
- 분석할 값이 들어옵니다. 만약 string이 문자열이 아니라면 문자열로 변환합니다.
- 문자열의 선행 공백은 무시합니다.
- radix
- string이 표현하는 정수를 나타내는 2와 36 사이의 진수입니다.
- optional 값입니다.
Reference.
소스 코드
const input = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split("\n");
const solution = (input) => {
const num = input[0];
// 0x 로 시작하는 16진수의 변환
if (num[0] === "0" && num[1] === "x") return parseInt(num, 16);
// 0 으로 시작하는 8진수의 변환
if (num[0] === "0") return parseInt(num, 8);
// 10진수 변환
return parseInt(num);
};
console.log(solution(input));