코린이의 소소한 공부노트

[LeetCode/Easy] 1925. Count Square Sum Triples 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 1925. Count Square Sum Triples

무지맘 2023. 4. 24. 11:59

1. Input

1) int n

 

2. Output

1) 피타고리스의 정리를 만족하는 n 이하의 세 자연수 a, b, c의 순서쌍의 개수를 반환

- a^2 + b^2 = c^2

 

3. Constraint

1) 1 <= a, b, c <= n

2) 1 <= n <= 250

 

4. Example

Input: n = 5 -> Output: 2

설명: (3,4,5), (4,3,5)

 

5. Code

1) 첫 코드(2023/04/24)

int answer = 0;
for(int a=1 ; a<n ; a++){
    for(int b=1 ; b<n ; b++)
        for(int c=1 ; c<=n ; c++){
            if(Math.pow(a,2)+Math.pow(b,2)==Math.pow(c,2))
                answer++;
        }
}
return answer;

- 메모리는 거의 안 먹는데 엄청 느리다.

2) 다른 사람의 풀이를 참고해 다시 풀어본 코드(2023/04/24)

int answer = 0;
for(int a=1 ; a<=n ; a++){
    for(int b=a+1 ; b<=n ; b++){
        int c = a*a + b*b;
        int r = (int)Math.sqrt(c);
        if(r*r==c && r<=n)
            answer+=2;
    }            
}
return answer;

- 메모리는 더 먹지만 훨씬 빨라졌다.