๐ฅ Code-kata week3-1 ๋ฌธ์
๋ฌธ์
๋ ๊ฐ์ input์๋ ๋ณต์์(complex number)๊ฐ string ์ผ๋ก ์ฃผ์ด์ง๋๋ค. ๋ณต์์๋ a+bi ์ ํํ๋ก, ์ค์์ ํ์๋ก ์ด๋ฃจ์ด์ง ์์
๋๋ค.
input์ผ๋ก ๋ฐ์ ๋ ์๋ฅผ ๊ณฑํด์ ๋ฐํํด์ฃผ์ธ์. ๋ฐํํ๋ ํํ๋ ๋ณต์์ ํํ์ string ์ด์ด์ผ ํฉ๋๋ค.
๋ณต์์ ์ ์์ ์ํ๋ฉด (i^2)๋ -1 ์ด๋ฏ๋ก (i^2) ์ผ๋๋ -1๋ก ๊ณ์ฐํด์ฃผ์ธ์.
์ ๊ณฑ ํํ์ด ์ ๋์ด i์ 2์ ๊ณฑ์ (i^2)๋ผ๊ณ ํํํ์ต๋๋ค.
๊ฐ์ : input์ ํญ์ a+bi ํํ์ ๋๋ค. output๋ a+bi ํํ๋ก ๋์์ผ ํฉ๋๋ค.
Input: "1+1i", "1+1i" Output: "0+2i" ์ค๋ช : (1 + i) * (1 + i) = 1 + i + i + i^2 = 2i 2i๋ฅผ ๋ณต์์ ํํ๋ก ๋ฐ๊พธ๋ฉด 0+2i.
Input: "1+-1i", "1+-1i" Output: "0+-2i" ์ค๋ช : (1 - i) * (1 - i) = 1 - i - i + i^2 = -2i, -2i๋ฅผ ๋ณต์์ ํํ๋ก ๋ฐ๊พธ๋ฉด 0+-2i.
ํ์ด
์ธ์, ๋ฐํํ๋ ํํ๋ string ํํ์ฌ์ผ ํ๋ค.
๊ทธ๋์ slicing์ ๋ฐ๋ก ์ ์ฉํด์ ๊ณ์ฐํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
def complex_number_multiply(a, b):
x = int(a[:a.index('+')])
p = int(b[:b.index('+')])
y = int(a[a.index('+')+1:a.index('i')])
q = int(b[b.index('+')+1:b.index('i')])
result1 = (x*p - y*q)
result2 = (x*q + y*p)
if result1 == 0: result1 = 0
if result2 == 0: result2 = 0
# '+'๋ก ์ฐ๊ฒฐํ๋ ค๋ฉด ๋ชจ๋ str ํํ์ฌ์ผ ํจ
return str(result1) + '+' + str(result2) + 'i'