문제
(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.
(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.
출력
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
예제 입력
472
385
예제 출력
2360
3776
1416
181720
⭕ 풀이
var input = require('fs').readFileSync('/dev/stdin').toString().split('\n'),
a = Number(input[0]), b = Number(input[1]);
var firstNum = b%10 ,
secondNum = Math.floor(b/10) % 10 ,
thirdNum = Math.floor(b/100);
console.log(a*firstNum);
console.log(a*secondNum);
console.log(a*thirdNum);
console.log(a*b);
이전 단계에서 배워온것들을 토대로 풀어봤는데 뭔가 수학문제의 느낌이 더 강했다.
사실 input[1]을 또 나누어서 input[0] * input[1]의 [2] 이런식으로 푸는게 아닌가 싶어
배열을 또 나누는법 등 이렇다할 방법을 찾지못해 위방법으로 풀었는데..
백준사이트의 다른 분의 답안을 가져와봤다.
let x = require('fs').readFileSync('/dev/stdin', 'utf8').split('\n')
console.log(parseInt(x[0]) * parseInt(x[1].split('')[2]))
console.log(parseInt(x[0]) * parseInt(x[1].split('')[1]))
console.log(parseInt(x[0]) * parseInt(x[1].split('')[0]))
console.log(parseInt(x[0]) * parseInt(x[1]))
✅ parseInt(x[1].split('')[2]))
배열의 한 대상에서 또 split을 할 수 있다.
딱 내가원했던 부분이다.
따로 변수선언해줄 필요 없이
해당 배열에서 ''를 기준으로 나누어서 일의자리 십의자리 백의자리 값을 하나씩 뽑아오는 방식
-출처
https://www.acmicpc.net/problem/2588
'Algorithm > Baekjoon(Node.js)' 카테고리의 다른 글
[JavaSrcipt] Baekjoon - 9498 : 시험 성적 (0) | 2021.08.21 |
---|---|
[JavaSrcipt] Baekjoon - 1330 : 두 수 비교하기 ( if, 삼항연산) (0) | 2021.08.21 |
[JavaSrcipt] Baekjoon - 10430 : 나머지 (0) | 2021.08.20 |
[JavaSrcipt] Baekjoon - 10869 : 사칙연산 (Math.floor, number) (0) | 2021.08.20 |
[JavaSrcipt] 연산자 (0) | 2021.08.19 |