Algorithm) Codekata_Day 11

김명성·2021년 8월 2일
0

Algorithm

목록 보기
12/61
post-thumbnail

❓ Question

문자열로 구성된 두 개의 복소수를 인자로 받아 해당 복소수의 곱셈을 반환하자
:: 복소수의 형태 (x+xi)
:: 조건 : i*i = -1로 계산

📝 My Solution

어떤 메소드를 사용해야 할지 감이 잡히지 않아
수학적으로 그냥 접근하도록 코드를 짰다.

먼저 인자가 문자열인 "x+xi"의 형태로 인자를 받게 되기 때문에
숫자만 추출해내도록 indexOf 와 slice를 이용해서 각 문자열의 숫자를 추출했다.
그리고 숫자로 변하도록 Number를 이용했다.

예를 들어서 (1+2i) (2+3i) 가 들어온다면
(1*2) + (1*3) + (2*2) + (2*3) 이런식으로 계산이 되어야 하기에
위와 같은 계산식을 넣어주고, i끼리 곱하게 되면 -1로 나오는 조건이 있어 -1을 곱했다.
거기에 문자인 "+" 와 "i" 를 붙여 문자로 추출되게 했다.


📝 Another Solution

해당 풀이방법은 내 동기 중 동우위키라는 수식어와 더불어
김멘토로 삼고 있는 동기의 풀이 방법이다.

우선 김멘토님은 function을 이용해 +의 전후 숫자를 가르고,
숫자로 변환해서 내보내는 funtion을 만들었다.

그 후, 곱셈 법칙을 이런식으로 구현했다.
(x+y)(x+y) = xx + xy + xy + yy 이런식으로 말이다.

이제 구현한 함수들을 토대로 해당 값을 가져오는 로직을 짰다.
그 이후 문자인 '+'와 'i'를 붙여서 다시 문자열로 만들어 준다.

해당 값을 리턴한다.


▪️ Solution review

이번 문제 역시 수학적인 사고를 요하는 부분이 컸는데,
이 부분을 어떻게 줄일까 생각을 했는데
다른 풀이 방법으로는 함수를 만들어서 하는 방법을 보고 나서는
내가 하는 방법이 효율적일지 아닐지 좀 고민이 되는 시간이었다.

profile
잠재력은 핵폭탄급 Frontend Developer

0개의 댓글

관련 채용 정보