문자열로 구성된 두 개의 복소수를 인자로 받아 해당 복소수의 곱셈을 반환하자
:: 복소수의 형태 (x+xi)
:: 조건 : i*i = -1로 계산
어떤 메소드를 사용해야 할지 감이 잡히지 않아
수학적으로 그냥 접근하도록 코드를 짰다.
먼저 인자가 문자열인 "x+xi"의 형태로 인자를 받게 되기 때문에
숫자만 추출해내도록 indexOf 와 slice를 이용해서 각 문자열의 숫자를 추출했다.
그리고 숫자로 변하도록 Number를 이용했다.
예를 들어서 (1+2i) (2+3i) 가 들어온다면
(1*2) + (1*3) + (2*2) + (2*3)
이런식으로 계산이 되어야 하기에
위와 같은 계산식을 넣어주고, i끼리 곱하게 되면 -1로 나오는 조건이 있어 -1을 곱했다.
거기에 문자인 "+" 와 "i" 를 붙여 문자로 추출되게 했다.
해당 풀이방법은 내 동기 중 동우위키라는 수식어와 더불어
김멘토로 삼고 있는 동기의 풀이 방법이다.
우선 김멘토님은 function을 이용해 +의 전후 숫자를 가르고,
숫자로 변환해서 내보내는 funtion을 만들었다.
그 후, 곱셈 법칙을 이런식으로 구현했다.
(x+y)(x+y) = xx + xy + xy + yy 이런식으로 말이다.
이제 구현한 함수들을 토대로 해당 값을 가져오는 로직을 짰다.
그 이후 문자인 '+'와 'i'를 붙여서 다시 문자열로 만들어 준다.
해당 값을 리턴한다.
이번 문제 역시 수학적인 사고를 요하는 부분이 컸는데,
이 부분을 어떻게 줄일까 생각을 했는데
다른 풀이 방법으로는 함수를 만들어서 하는 방법을 보고 나서는
내가 하는 방법이 효율적일지 아닐지 좀 고민이 되는 시간이었다.