문제 : 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);
'Problem Solving > boj.kr (JS)' 카테고리의 다른 글
[BOJ / 자바스크립트] 9498 : 시험 성적 (0) | 2022.02.04 |
---|---|
[BOJ / 자바스크립트] 1330 : 두 수 비교하기 (0) | 2022.02.04 |
[BOJ / 자바스크립트] 10430 나머지 (0) | 2022.02.04 |
[BOJ / 자바스크립트] 10869 사칙연산 (0) | 2022.02.03 |
[BOJ / 자바스크립트] 1008 A/B (0) | 2022.02.03 |
댓글