[알고리즘] 백준 2588 javascript

yeo_oni·2021년 10월 21일
0

알고리즘

목록 보기
10/18

문제

(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.

출력

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split("\n");
const A = parseInt(input[0]);
const B = parseInt(input[1]);

const cal1 = B % 10;
const cal2 = ((B % 100) - B % 10) / 10;
const cal3 = (B - (B % 100)) / 100;

console.log(`${A * cal1}
${A * cal2}
${A * cal3}
${A * B}`);


회고

split("\n") 부분을 \n이 아닌 스페이스로 처리해서 계속 문제를 풀었다.
그래서 계속 오류가 났나보다..? \n으로 고쳐주니 바로 맞았다는 메세지가..!
===> 문제의 입력값을 제대로 확인하자! 같은 줄에 입력이 될 때도 있고 줄바꿈으로 입력이 될 때도 있음


다른 사람들의 풀이방법

const oneNum = num2 %10;
const tenNum = Math.floor((num2%100)/10);
const hundNum = Math.floor(num2/100);

Math.floor 함수를 사용한 점을 발견했다.

Math.floor()

주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환한다고 한다!
내림함수라고 생각하면 될듯하다?

console.log(Math.floor(5.95));
// expected output: 5

console.log(Math.floor(5.05));
// expected output: 5

console.log(Math.floor(5));
// expected output: 5

console.log(Math.floor(-5.05));
// expected output: -6

Math.round()

입력값을 반올림한 수와 가장 가까운 정수 값을 반환

Math.ceil()

주어진 숫자보다 크거나 같은 숫자 중 가장 작은 숫자를 integer 로 반환

0개의 댓글