node 출력방식대신 script 로 출력하였습니다.

 

인자로 세자리 숫자 두개를 받아서 그림과 같이 3,4,5,6번에 출력되는 숫자를 구하는 문제이다.

일단 3번 값을 구하려면 472 * 5를 하면되고, 4번은 472 * 8, 5번은 472 * 3이다.

그리고 마지막에 구한 값을 모두 더해주면 된다.

 

📌작성코드

<script>
  function solution(a, b) {
    let firstSum, seconSum, thirdSum, totalSum;
    let num1 = a.toString(), num2 = b.toString().split('');
    firstSum = (num1 * num2[2]) //3번 위치
    seconSum = (num1 * num2[1]) //4번 위치
    thirdSum = (num1 * num2[0]) //5번 위치
    totalSum = firstSum + Number(`${seconSum}0`) + Number(`${thirdSum}00`) //6번 위치
    return [firstSum, seconSum, thirdSum, totalSum];
  }
  console.log(solution(472, 385));
</script>

제일 먼저 인자로 받는 a를 문자열로 변환환다.

그럼  '472'가 출력되고, 두번째 인자 b는 '472'에 1의 자리 10의 자리 100의 자리를 곱해주어야하기때문에

split으로 자리수를 쪼개주었다.

num2에는 ['3', '8', '5'] 가 출력되고, (3)번 위치에는 472 * 5를 해주면 되기때문에 num1* num2[2]을 넣어준다.

 

마지막 6번은 총 구한 값을 더해줘야하는데,

그냥 더하게 되면 

2360 + 3776 + 1416 이되어버려서 엉뚱한 값이 나오게 된다.

템플릿리터럴로 뒤에 숫자 0을 넣어서 2360 + 37760 + 141600 으로 만들어준다.

이때 Number타입으로 감싸지않으면 그냥 

236037760141600 이렇게 출력되 버리기때문에 꼭 number타입으로 감싸준다.

 

 

복사했습니다!