algorithm | February 20, 2020
string으로 받은 복소수(complex number) 2개를 곱해서 string으로 반환하라.
input은 항상 a+bi 형태이며, output도 a+bi 형태로 나와야 한다.
i
가 아닌 j
로 표현한다.complex()
함수로 복소수로 변환한다.replace()
로 변환해서 return 한다.complex('1+j')
: string 형태의 복소수를 넣으면 복소수 type으로 변환한다.complex(1, 3)
: 숫자 2개를 넣으면 (1+3j)의 복소수 형태로 변환한다. def complexNumberMultiply(a, b):
a = complex(a.replace('i', 'j').replace('+-', '-'))
b = complex(b.replace('i', 'j').replace('+-', '-'))
multiple = str(a * b)
multiple = multiple.replace('j', 'i').replace('(','').replace(')','')
if (a*b).real == 0:
multiple = '0+' + multiple
return multiple
def complexNumberMultiply(a, b):
firstArr = a[:-1].split('+')
a1 = int(firstArr[0])
a2 = int(firstArr[1])
secondArr = b[:-1].split('+')
b1 = int(secondArr[0])
b2 = int(secondArr[1])
return f'{a1 * b1 - a2 * b2}+{a1 * b2 + a2 * b1}i'
map()
을 사용하여 각각의 변수에 unpack 한다.%d
를 활용하여 대입하는 방식으로 return 한다.def complexNumberMultiply2(a, b):
a1, a2 = map(int, a[:-1].split('+'))
b1, b2 = map(int, b[:-1].split('+'))
return '%d+%di' % (a1 * b1 - a2 * b2, a1 * b2 + a2 * b1)