이 문제는 (세자리 수) * (세자리 수) 의 과정을 출력 하는 문제이다.
위의 과정 중 (3), (4), (5), (6) 번을 출력을 해야 한다.
(1)에 위치 할 수와 (2)에 위치 할 수가 주어진다.
// 입력값 문자 배열로 받기
const input_enter: string[] = require("fs")
.readFileSync("/dev/stdin")
.toString()
.split("\n");
// 받은 입력값 number 타입으로 바꿔서 두 변수에 저장
const [f_num, s_num] = input_enter.map(Number);
// (2)번 숫자 100, 10, 1의 자리 수로 분배
// 100의 자리 수
const sn_f = Math.floor(s_num / 100);
// 10의 자리 수
const sn_s = Math.floor((s_num - sn_f * 100) / 10);
// 1의 자리 수
const sn_t = s_num - sn_f * 100 - sn_s * 10;
/**
* 순서대로
* 1의 자리 수 * (1)
* 10의 자리 수 * (1)
* 100의 자리 수 * (1)
* (1) * (2)
* 출력
**/
console.log(`${sn_t * f_num}
${sn_s * f_num}
${sn_f * f_num}
${s_num * f_num}`);
이 문제의 경우는 곱하는 값의 각 자리 수 별로 나누어 계산을 하는게 중요한 포인트 였던 것 같다.
조금 더 예쁘게 코드를 짤 수 있는 방법을 찾으면 좋을 것 같다.