자바스크립트 백준 2588번
브론즈3
https://www.acmicpc.net/problem/2588
문제 보기
분류: 수학, 사칙연산
문제 풀기
줄 바꿈으로 저장되어있는 두 개의 숫자를 문자로 입력받아 각각 나눠 저장한다.
const fs = require('fs');
const [num1, num2] = fs.readFileSync('dev/stdin').toString().trim().split('\n');
첫 번째 입력받은 string 타입의 숫자는 integer 형태로 바꾸어 저장한다.
const num1toInt = parseInt(num1);
두 번째 입력받은 string 타입의 숫자는 split('') 으로 한 개씩 나누고 map() 을 사용하여 array 로 저장하되 숫자 변환 Number() 을 하고 저장한다.
const num2toMapNum = num2.split('').map(Number);
배열 형식의 num2toMapNum 는 1의 자리 계산을 먼저 하기 위해 reverse() 함수를 적용해 주고 map(x => x * num1toInt) 으로 일십백 각 자리의 숫자와 곱셈을 하여 array 로 result 에 저장한다.
let result = num2toMapNum.reverse().map(x => x * num1toInt);
result 배열에 입력받은 두세 자리 숫자의 곱을 계산하여 추가시킨다.
result.push(num1toInt * parseInt(num2));
결과를 출력한다.
console.log(result.join('\n'));
코드 보기
const fs = require('fs');
const [num1, num2] = fs.readFileSync('dev/stdin').toString().trim().split('\n');
const num1toInt = parseInt(num1);
const num2toMapNum = num2.split('').map(Number);
let result = num2toMapNum.reverse().map(x => x * num1toInt);
result.push(num1toInt * parseInt(num2));
console.log(result.join('\n'));
추가 하기
split('\n') 로 줄 바꿈 형식을 입력받을 수 있게 한다.
map(Number) 은 map((str, ind, arr) => Number(str, ind, arr) 와 같아 ['1', '2', '3', '4'] => [1, 2, 3, 4] 처럼 간편하게 변환할 수 있다.
'공부하기 > 백준' 카테고리의 다른 글
[Python] 백준 풀기 2587 - 대표값2 (0) | 2022.11.04 |
---|---|
[JavaScript] 백준 풀기 2577 - 숫자의 개수 (0) | 2022.11.03 |
[JavaScript] 백준 풀기 10430 - 나머지 (0) | 2022.11.01 |
[Python] 백준 풀기 1654 - 랜선 자르기 (0) | 2022.10.31 |
[Python] 백준 풀기 8958 - OX퀴즈 (0) | 2022.10.30 |