Codekata 3-1
문제
두 개의 input에 복소수(complex number)가 string 으로 주어집니다.
복소수란 a+bi 의 형태로, 실수와 허수로 이루어진 수입니다.
input으로 받은 두 수를 곱해서 반환해주세요.
반환하는 표현도 복소수 형태의 string 이어야 합니다.
복소수 정의에 의하면 (i^2)는 -1 이므로 (i^2) 일때는 -1로 계산해주세요.
(제곱 표현이 안 되어 i의 2제곱을 (i^2)라고 표현했습니다.)
예제
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
풀이
const complexNumberMultiply = (a, b) => {
let firstArr = a.substring(0, a.length-1).split('+');
//console.log("first",firstArr);
const a1 = Number(firstArr[0])
//console.log("a1" , a1);
const a2 = Number(firstArr[1])
//console.log("a2", a2);
let secondArr = b.substring(0, b.length-1).split('+');
// console.log("second",secondArr);
const b1 = Number(secondArr[0])
const b2 = Number(secondArr[1])
return `${a1 * b1 - a2 * b2}+${a1 * b2 + a2 * b1}i`
}
a와 b인자를 받아와 복소수 형태에 값(3+-1i)을 subString(0, a.length-1).split('+')해서 ['3' , '-1']으로 만들어주고,
그 후에 a1이랑 a2에 각각 3이랑 -1을 넣어준다.
secondArr에서도 위 처럼 똑같이 해주고 각각 나온 값들을
return 해주면 된다(●'◡'●)
느낀점
문제를 처음 봤을 때 무슨 소리인지 이해가 안갔지만, 이해하고 푸니깐 생각보다 쉬웠다. 😜
Author And Source
이 문제에 관하여(Codekata 3-1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@go286/Codekata-3-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)