백준 2588번 Node.js 풀이

버건디·2022년 7월 10일
0

백준

목록 보기
13/75
post-thumbnail

문제

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

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

입력

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

출력

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

예제 입력 1

472
385

예제 출력 1

2360
3776
1416
181720

풀이 1

const input = require('fs').readFileSync('/dev/stdin').toString().split('\n');

let a = input[0].split('');
let b = input[1].split('');

let one = Number(input[0]) * Number(b[2]);
let two = Number(input[0]) * Number(b[1]);
let three = Number(input[0]) * Number(b[0]);

console.log(one);
console.log(two);
console.log(three);
console.log((three*100) + (two * 10) + one);

풀이 1 해설

각 숫자를 split메서드를 통해서 나누어준 후, 그 값들을 계산하여서 답을 도출하였다.

풀이 2

const input = require('fs').fs.readFileSync('/dev/stdin').toString().split('\n').map(Number);

const oneNum=input[1]%10;
const tenNum=Math.floor((input[1]%100)/10);
const hundredNum=Math.floor(input[1]/100);

console.log(input[0]*oneNum);
console.log(input[0]*tenNum);
console.log(input[0]*hundredNum);
console.log(input[0]*input[1]);

풀이 2 해설

Math.floor (나머지 소수점들을 버림 해주는 메서드)를 통하여 5, 8, 3 이라는 값을 구해준 후 결과를 도출해내었다.

개인적으로는 Math.floor메서드를 사용을 사용해서 푸는 방법이 조금이나마 더 알고리즘 사고방식(?)에 도움이 되지 않을까 싶다.

하지만 난 풀이 1 을 통해 답을 구했는데, 나중에 이런 비슷한 문제를 만나게 되면 Math메서드를 사용해서 풀 수 있도록 기억해놓아야겠다.

profile
https://brgndy.me/ 로 옮기는 중입니다 :)

1개의 댓글

comment-user-thumbnail
2024년 3월 22일

Math 함수 사용한 풀이에서 .fs 빼야합니다 안그러면 TypeError 발생합니다.

답글 달기