본문 바로가기
Problem Solving/boj.kr (JS)

[BOJ / 자바스크립트] 2588 곱셈

by hoiiiii 2022. 2. 4.

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

 

2588번: 곱셈

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

www.acmicpc.net

 

설명 :

1. 두 입력값을 역순으로 a, b 배열에 저장한다. 

2. digit = a의 자릿수 표시, place_value = b의 자릿수 표시 

3. b의 1의 자리에서 a의 각 자리수를 반복문으로 돌면서 (digit를 10배씩 증가시키면서) 곱셈을 계산. 계산 결과를 temp에 누적 

4. 모든 계산이 끝나면 temp 값을 출력후 result에 더해준다.

5. b의 일의 자리 계산이 끝나면 10의 자리 -> 100의 자리에서도 같은 로직을 반복

 

3~5의 과정은 2중 루프로 구현

 

Sol) 시간복잡도 : O(N^2)

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');
const a = input[0];
const b = input[1];
let result = 0;
let place_value = 1;

for (let i = b.length-1 ; i>=0 ; i--){
    let temp = 0;
    let digit = 1;
    for (let j = a.length-1 ; j>=0 ; j--){
        temp += Number(a[j])*Number(b[i])*digit;
        digit *= 10;
    }
    console.log(temp);
    result += temp*place_value;
    place_value *= 10;
}
console.log(result);

댓글