두 개의 복소수가 string으로 주어진다. 복소수는 a+bi의 형태로 실수와 허수로 이루어진 수 입니다.
두 수를 곱하여 반환해주세요.
string형태로 주어지기 때문에 실수와 허수를 +를 기준으로 나눌 수 있다. (split())
처음엔 이러하게 생각했다.
string의 형태로 주어졌으므로 a실수 x b실수, a실수 x b허수, b실수 x a허수, a허수 x b허수 이렇게 일일이 곱해주는 형태로 풀으려하였다.
하지만 내가 쓰는 코드가 무엇인가 바로 그 python
파이썬에는 복소수에 관련된 클래스인 complex가 있었다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class Solution: def complexNumberMultiply(self, num1: str, num2: str) -> str: rel_a = num1.split('+') rel_b = num2.split('+') int_a = int(rel_a[0]) int_b = int(rel_b[0]) x_a = int(rel_a[1][:-1]) x_b = int(rel_b[1][:-1]) result_a = complex(int_a,x_a) result_b = complex(int_b,x_b) c = result_a*result_b return f'{int(c.real)}+{int(c.imag)}i' | cs |
3~4 : 각자 + 를 기준으로 나눈다.
6~7 : 실수를 저장
9~10 : 허수부분을 i를 제외하고 저장해준다.(-포함)
12~13 : 나눠진 실수와 허수를 complex()를 이용하여 복소수화한다.
15 : 복소수 곱셈 진행
17 : real은 실수부분, imag는 허수부분을 넣어주고 문제에서 원하는 형태로 만들기 위해 마지막에 i를 추가해준다.