코린이의 소소한 공부노트

[LeetCode/Medium] 537. Complex Number Multiplication 본문

코딩테스트 풀이/JAVA

[LeetCode/Medium] 537. Complex Number Multiplication

무지맘 2022. 8. 23. 11:23

1. Input

1) "real+imaginaryi" 형태의 복소수를 담은 String 변수 num1, num2

2) real: [-100, 100] 범위 내의 정수. 복소수의 실수부

3) imaginary: [-100, 100] 범위 내의 정수. 복소수의 허수부

 

2. Output

1) num1과 num2의 곱의 결과를 담은 String 변수

2) i^2 == -1

 

3. Constraint

1) num1, num2는 유효한 복소수

 

4. Example

Input: num1 = "1+-1i", num2 = "1+-1i"
Output: "0+-2i"

설명: (1 - i) * (1 - i) = 1 - i - i + i^2 = -2i이므로 "0+-2i"

 

5. Code

1) 첫 코드(2022/08/23)

int a1=0, a2=0, b1=0, b2=0;
for(int i=0 ; i<num1.length() ; i++)
    if(num1.charAt(i)=='+'){
        a1 = Integer.valueOf(num1.substring(0,i));
        b1 = Integer.valueOf(num1.substring(i+1,num1.length()-1));
        break;
    }
for(int i=0 ; i<num2.length() ; i++)
    if(num2.charAt(i)=='+'){
        a2 = Integer.valueOf(num2.substring(0,i));
        b2 = Integer.valueOf(num2.substring(i+1,num2.length()-1));
        break;
}
return (a1*a2-b1*b2) + "+" + (a1*b2+a2*b1) + "i";

  - +를 기준으로 실수부와 허수부를 나눈다.

  - 계산 후 반환한다.