해냈다,,,🥺
문제
두 개의 input에 복소수(complex number)가 string 으로 주어집니다.
복소수란 a+bi 의 형태로, 실수와 허수로 이루어진 수입니다.
input으로 받은 두 수를 곱해서 반환해주세요.
반환하는 표현도 복소수 형태의 string 이어야 합니다.
복소수 정의에 의하면 (i^2)는 -1 이므로 (i^2) 일때는 -1로 계산해주세요.
(제곱 표현이 안 되어 i의 2제곱을 (i^2)라고 표현했습니다.)
[예제]
Input: "1+1i", "1+1i"
Output: "0+2i"
[설명]
(1 + i) * (1 + i) = 1 + i + i + i^2 = 2i
2i를 복소수 형태로 바꾸면 0+2i.
풀이
const complexNumberMultiply = (a, b) => {
let strA = a.slice(0, -1);
let strB = b.slice(0, -1);
let arr = strA.split('+').concat(strB.split('+'))
let arr2 = arr.map(x => parseInt(x))
let answer;
answer = ((arr2[0] * arr2[2]) - (arr[1] * arr[3])).toString();
answer += '+'
answer += (arr[0] * arr[3] + arr2[1] * arr2[2]).toString();
answer += 'i'
return answer;
}
'복소수'라고 표현했지만, 복소수의 개념을 생각하지 않아도 접근할 수 있는 문제다. a와 b를 곱한 형태이고, i^2는 -1이라는 것만 생각했다.