[Codekata] JavaScript

link717·2020년 11월 17일
0

codekata

목록 보기
3/5
post-thumbnail

😥 Question?

두 개의 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"
};

😏 Idea!

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) 값을 리턴한다.
profile
Turtle Never stop

0개의 댓글