[백준] 입출력 사칙연산 곱셈 문제

구펭·2021년 9월 20일
0

baekjoon

목록 보기
2/3

문제

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

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

입력

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

출력

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

ex)
입력         출력
472          2360 - (3)
385          3776 - (4)
               1416 - (5)
               181720 - (6)

해결방안

(2)로 입력받은 수의 일의자리, 십의자리, 그리고 백의자리를
따로 변수로 설정하여 각각 (1)에 입력받은 수와 곱을 하면 된다.

+) 값을 저장하기 위해서 Math.floor() 메서드를 사용했는데,
각 자리를 표현하기 위한 방법이 이것밖에 떠오르지 않았다.
추후에 좋은 방법이 떠오른다면 다시 풀어야 하는 문제이다!!

코드

const readline = require('readline');
const rl = readline.createInterface({
input : process.stdin,
output : process.stdout
});

let input = [];

rl.on('line',function(line){
input.push(line);
}).on('close',function(){
let a = parseInt(input[0].split(' '));
let b = parseInt(input[1].split(' '));

let b0 = b%10; //일의 자리
let b1 = Math.floor(b/10); // 일의 자리를 제외한 두 자리
let b2 = b1%10; // 십의 자리
let b3 = Math.floor(b1/10); // 백의 자리

console.log(ab0);
console.log(ab2);
console.log(a
b3);
console.log(a*b);

process.exit();
});

짧은 후기

문제를 풀기 위해 고민해봤지만 각 자리를 구하기 위해 몫과 나머지를 이용하는 방법밖에는 떠올리지 못했다. 하지만 사칙연산의 범주 내에서 풀어야 하니 맞는 방법이라고도 생각한다.

부족한 글 읽어주셔서 감사합니다! 건강한 비판 항상 행복하게 받고 있습니다. 감사합니다!
     
profile
=ㅅ=

0개의 댓글

Powered by GraphCDN, the GraphQL CDN