두 개의 input에 복소수(complex number)가 string 으로 주어집니다.
복소수란 a+bi 의 형태로, 실수와 허수로 이루어진 수입니다.
input으로 받은 두 수를 곱해서 반환해주세요.
반환하는 표현도 복소수 형태의 string 이어야 합니다.
복소수 정의에 의하면 (i^2)는 -1 이므로 (i^2) 일때는 -1로 계산해주세요.
예시)
Input: "1+3i", "1+-2i"
Output: "7+1i"
(1 + 3i) * (1 - 2i) = 1 - 2i + 3i -6(i^2) = 1 + i + 6,
7+i를 복소수 형태로 바꾸면 7+1i
작성한 코드)
let a = a1+ a2i
let b = b1 +b2i
const complexNumberMultiply = (a, b) => {
const a1 = a.split("+")[0];
const a2 = parseInt(a.split("+")[1]);
const b1 = b.split("+")[0];
const b2 = parseInt(b.split("+")[1]);
return (a1*b1-a2*b2)+"+"+(a1*b2+a2*b1)+"i"
};
1차 프로젝트 첫주차에 받았던 코드카타 문제였는데 그때는 어렵게만 생각했던 문제가 지금 다시보니 금방 풀려서 신기했다!
나는 input되는 argument의 구조를 아래의 형태로 가정하고 i 앞의 string은 parseInt method를 사용하여 number type으로 변한한 뒤 계산하였고 그 뒤에 x+yi 구조로 변환하여 return 하였다.
parseInt(string, radix);
1) string
- 숫자로 변환할 문자열
2) radix
- optional
- string 문자열을 읽을 진법(수의 진법 체계의 진법)
- 2~36의 수
string을 정수로 변환한 값을 리턴한다.
만약, string의 첫 글자를 정수로 변경할 수 없으면 NaN(Not a Number) 값을 리턴한다.