[CodeKata] JavaScript (Map메서드 활용)

임창현·2022년 11월 20일
0

CodeKata

목록 보기
2/4
post-thumbnail

문제

두 개의 input에 복소수(complex number)가 string 으로 주어집니다. 복소수란 a+bi 의 형태로, 실수와 허수로 이루어진 수입니다. input으로 받은 두 수를 곱해서 반환해주세요. 반환하는 표현도 복소수 형태의 string 이어야 합니다.
복소수 정의에 의하면 (i^2)는 -1 이므로 (i^2) 일때는 -1로 계산해주세요.
(제곱 표현이 안 되어 i의 2제곱을 (i^2)라고 표현했습니다.)

  • 가정
    input은 항상 a+bi 형태입니다. output도 a+bi 형태로 나와야 합니다.

예제 1
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) => {
  // 여기에 코드를 작성해주세요.
  a = a.slice(0,-1)
  b = b.slice(0,-1)
  
  a = a.split('+').map(Number)
  b = b.split('+').map(Number)
  
  let first = a[0]*b[0] 
  let second = a[0]*b[1] + a[1]*b[0]
  let third = a[1]*b[1]*-1
  
  return first+third+"+"+second+"i";
}

배운점

Map() 메서드 : 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환한다.

var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
// roots는 [1, 2, 3]
// numbers는 그대로 [1, 4, 9]
profile
Hi there 👋 i'm backend developer

0개의 댓글