Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 두 숫자의 루나 합(Lunar Sum) 구하기

루나 합(Lunar Sum)이란?

루나 합(lunar sum)은 두 수를 더할 때 각 자릿수를 일반적인 덧셈으로 계산하는 대신, 같은 자리의 두 숫자 중 더 큰 값을 취해 결과를 만드는 독특한 덧셈 방식입니다.

예를 들어 다음과 같은 두 수가 있다고 가정해 보겠습니다.

a = 879, b = 768

(이 문제에서는 편의상 자릿수가 같은 두 수만 다룹니다.)

각 자릿수별로 더 큰 값을 선택하면 8, 7, 9가 되므로, a와 b의 루나 합은 다음과 같습니다.

879

이제 우리는 두 개의 숫자를 인자로 받아 그 루나 합을 반환하는 JavaScript 함수를 작성해야 합니다.

구현 예시

다음은 해당 코드입니다.

const num1 = 6565;
const num2 = 7385;
const lunarSum = (num1, num2) => {
    const numStr1 = String(num1);
    const numStr2 = String(num2);
    let res = 0, temp;
    for(let i = 0; i < numStr1.length; i++){
        temp = Math.max(+numStr1[i], +numStr2[i]);
        res = (res*10) + temp;
    };
    return res;
};
console.log(lunarSum(num1, num2));

출력 결과

콘솔에 출력되는 결과는 다음과 같습니다.

7585

코드 동작 원리

위 코드의 동작 과정을 단계별로 살펴보면 다음과 같습니다.

  • 먼저 String()을 사용해 두 숫자를 문자열로 변환하여 각 자릿수에 쉽게 접근할 수 있도록 준비합니다.
  • 반복문을 돌면서 같은 위치의 자릿수 두 개를 Math.max()로 비교하여 더 큰 값을 선택합니다.
  • 선택된 자릿수는 res * 10 + temp 공식을 통해 기존 결과값 뒤에 이어 붙여 최종 숫자를 만듭니다.
  • 모든 자릿수를 처리한 후 완성된 루나 합을 반환합니다.

예제에서 6565와 7385의 경우 각 자릿수별로 7, 5, 8, 5가 선택되므로 최종 결과인 7585가 출력됩니다.