본문 바로가기

백준/입출력과 사칙연산

(node.js) 백준 2588번 : 곱셈 [Javascript]

728x90

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

문제

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

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

입력

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

출력

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

 


예제 입력1

472
385

예제 출력1

2360
3776
1416
181720

 

내 제출

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

const a = input[0];
const b = input[1];

let sum = 0;
let tmp = b;
let rest = 0; //tmp의 1의 자리
let result = 0; //a와 rest곱
let jari = 1;

while (tmp != 0) {
  /* 현재 tmp값의 1의 자리 연산 진행*/
  rest = tmp % 10;
  result = a * rest;
  console.log(result);
  sum += result * jari;

  /* 다음 자리 연산 준비 */
  jari *= 10;
  tmp -= rest;
  tmp /= 10;
}

console.log(sum);

 

풀이

const fs = require("fs");
//입력 값을 두 줄로 받기 때문에 줄바꿈으로 입력값 받기
const input = fs.readFileSync("/dev/stdin").toString().split("\n");

const a = input[0];
const b = input[1];

let sum = 0;
let tmp = b;
let rest = 0; //tmp의 1의 자리
let result = 0; //a와 rest곱
let jari = 1;

while (tmp != 0) {
  //현재 tmp값의 1의 자리 연산 진행
  rest = tmp % 10;
  result = a * rest;
  console.log(result);
  sum += result * jari;

  // 다음 자리 연산 준비
  jari *= 10;
  tmp -= rest;
  tmp /= 10;
  
  //연산 준비가 마치면 그다음 10의자리, 100의 자리 순으로 연산 진행
}

console.log(sum);