-
[BOJ] 곱셈 - 2588ComputerScience/Algorithm 2025. 1. 3. 15:22728x90
[Bronze III] 곱셈 - 2588
성능 요약
메모리: 9584 KB, 시간: 100 ms
분류
사칙연산, 수학
제출 일자
2025년 1월 3일 14:22:01
문제 설명
(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.
(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.
출력
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
후기
그냥 하드코딩 해버렸다.
const fs = require("fs"); const filePath = process.platform === "linux" ? "dev/stdin" : "run/input.txt"; const input = fs.readFileSync(filePath).toString().split("\n"); const operation = (a, b) => { let num1 = 0; let num2 = 0; let num3 = 0; let sum = 0; num1 += Number(a[0]) * 100 * Number(b[2]) + Number(a[1]) * 10 * Number(b[2]) + Number(a[2]) * Number(b[2]); num2 += Number(a[0]) * 100 * Number(b[1]) + Number(a[1]) * 10 * Number(b[1]) + Number(a[2]) * Number(b[1]); num3 += Number(a[0]) * 100 * Number(b[0]) + Number(a[1]) * 10 * Number(b[0]) + Number(a[2]) * Number(b[0]); sum += num1 + num2 * 10 + num3 * 100; const result = [num1, num2, num3, sum]; for (v of result) { console.log(v); } }; operation(input[0], input[1]);
숏코딩을 봤다.
const [A, B] = require('fs').readFileSync('/dev/stdin').toString().split('\n'); for (let i = B.length; i > 0; i--) { console.log(Number(A) * Number(B[i - 1])); } console.log(Number(A) * Number(B));
나는 실제로 곱셈을 하는 것처럼 하드코딩 했다면, 이 풀이는 반복문과 배열 그리고 배열의 인덱싱을 활용하여 효율적이고 간략하게 표현했다.
아직까지 자바스크립트 문법이 익숙하지 않은 것이 티가 난다.
'ComputerScience > Algorithm' 카테고리의 다른 글
[UJAD] 문제 해결 접근법 (0) 2024.12.11 [UJAD] 배열과 오브젝트의 성능 평가 (0) 2024.12.05 [UJAD] Big O Notation (0) 2024.11.27 [BOJ] 사분면 고르기 - 14681 (1) 2024.09.12 [BOJ] 윤년 - 2753 (1) 2024.09.12