Algorithm/Baekjoon(Node.js)

[JavaSrcipt] Baekjoon - 2588 : 곱셈 Number(input[1].split('')[0])

비망노트 2021. 8. 20. 23:43

문제

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

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

입력

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

출력

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

 

예제 입력

472

385

 

예제 출력

2360

3776

1416

181720

 

⭕ 풀이

var input = require('fs').readFileSync('/dev/stdin').toString().split('\n'),
    a = Number(input[0]), b = Number(input[1]);

var firstNum = b%10 , 
    secondNum = Math.floor(b/10) % 10 ,
    thirdNum = Math.floor(b/100); 

console.log(a*firstNum);
console.log(a*secondNum);
console.log(a*thirdNum);
console.log(a*b);

이전 단계에서 배워온것들을 토대로 풀어봤는데 뭔가 수학문제의 느낌이 더 강했다.

 

사실 input[1]을 또 나누어서 input[0] * input[1]의 [2] 이런식으로 푸는게 아닌가 싶어

배열을 또 나누는법 등 이렇다할 방법을 찾지못해 위방법으로 풀었는데..

 

 

백준사이트의 다른 분의 답안을 가져와봤다.

let x = require('fs').readFileSync('/dev/stdin', 'utf8').split('\n')
console.log(parseInt(x[0]) * parseInt(x[1].split('')[2]))
console.log(parseInt(x[0]) * parseInt(x[1].split('')[1]))
console.log(parseInt(x[0]) * parseInt(x[1].split('')[0]))
console.log(parseInt(x[0]) * parseInt(x[1]))

✅ parseInt(x[1].split('')[2]))

배열의 한 대상에서 또 split을 할 수 있다.

 

딱 내가원했던 부분이다.

따로 변수선언해줄 필요 없이

해당 배열에서 ''를 기준으로 나누어서 일의자리 십의자리 백의자리 값을 하나씩 뽑아오는 방식

 

 

 

 

 

-출처

https://www.acmicpc.net/problem/2588