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

JavaScript로 두 숫자의 첫 자릿수를 교환한 후 차이 구하기


문제 설명

정확히 두 개의 숫자를 요소로 가지는 배열을 입력받아, 두 숫자의 첫 번째 자릿수를 서로 교환한 뒤 그 차이의 절댓값을 반환하는 JavaScript 함수를 작성해야 합니다.

예를 들어 배열이 [105, 413]이라면 다음과 같습니다.

첫 자릿수를 교환하면 각각 405와 113이 되며, 따라서 결과는 |405 - 113| = 292입니다.

구현 예제

다음은 이를 해결하는 코드입니다 −

const arr = [105, 413];
const interchangedDigitDiff = (arr = []) => {
   arr = arr.map(String);
   const [first, second] = arr;
   const fChar = first[0];
   const sChar = second[0];
   const newFirst = sChar + first.substring(1, first.length);
   const newSecond = fChar + second.substring(1, second.length);
   const newArr = [+newFirst, +newSecond];
   const diff = Math.abs(newArr[0] - newArr[1]);
   return diff;
};
console.log(interchangedDigitDiff(arr));

출력 결과

콘솔 출력 결과는 다음과 같습니다 −

292

코드 동작 원리

이 함수가 작동하는 방식을 단계별로 살펴보겠습니다.

1. 문자열 변환: map(String)을 사용해 배열의 모든 숫자를 문자열로 변환합니다. 자릿수에 직접 접근하기 위함입니다.

2. 첫 자릿수 추출: 인덱스 0을 통해 각 숫자의 첫 번째 문자(fChar, sChar)를 가져옵니다.

3. 자릿수 교환: substring(1)으로 첫 글자를 제외한 나머지 부분을 얻은 뒤, 상대방의 첫 자릿수와 연결하여 새로운 숫자를 만듭니다.

4. 차이 계산: 단항 더하기(+) 연산자로 문자열을 다시 숫자로 변환한 후, Math.abs()를 사용해 두 값의 절댓값 차이를 반환합니다.