[알고리즘] 백준 2588 곱셈 - Typescript

POBSIZ (POBSIZ)·2023년 3월 4일
0

알고리즘

목록 보기
1/11
post-custom-banner

문제 바로가기 >

설명

이 문제는 (세자리 수) * (세자리 수) 의 과정을 출력 하는 문제이다.

위의 과정 중 (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}`);

마무리

이 문제의 경우는 곱하는 값의 각 자리 수 별로 나누어 계산을 하는게 중요한 포인트 였던 것 같다.
조금 더 예쁘게 코드를 짤 수 있는 방법을 찾으면 좋을 것 같다.

post-custom-banner

0개의 댓글