537. Complex Number Multiplication

hs·2021년 9월 5일
0

Leetcode

목록 보기
3/4

🎰 문제

두 개의 복소수가 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를 추가해준다.

profile
무엇이든 끝까지 보람차게

0개의 댓글