코린이의 소소한 공부노트

[LeetCode/Easy] 1534. Count Good Triplets 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 1534. Count Good Triplets

무지맘 2022. 12. 27. 16:04

1. Input

1) 정수 배열 arr

2) 정수 a

3) 정수 b

4) 정수 c

 

2. Output

1) good triplet의 개수를 반환

// good triplet은 다음 조건을 만족하는 세 수를 뜻함

- 0 <= i < j < k < arr.length

- | arr[i] - arr[j] | <= a

- | arr[j] - arr[k] | <= b

- | arr[i] - arr[j] | <= c

 

3. Constraint

1) 3 <= arr.length <= 100

2) 0 <= arr[i] <= 1000

3) 0 <= a, b, c <= 1000

 

4. Example

Input: arr = [3,0,1,1,9,7], a = 7, b = 2, c = 3 -> Output: 4

설명:

세 수      i   j   k   |arr[i]-arr[j]|     |arr[j]-arr[k]|    |arr[i]-arr[j]|

(3,0,1)  0  1  2           3                     1                  2

(3,0,1)  0  1  3           3                     1                  2

(3,1,1)  0  2  3           2                     0                  2

(0,1,1)  1  2  3           1                     0                  1

 

5. Code

1) 첫 코드(2022/06/07)

int count = 0;
for(int i=0 ; i<arr.length-2 ; i++){
    for(int j=i+1 ; j<arr.length-1 ; j++) {
        if(Math.abs(arr[i]-arr[j]) <= a){
            for(int k=j+1 ; k<arr.length ; k++)
                if(Math.abs(arr[j]-arr[k]) <= b)
                    if(Math.abs(arr[i]-arr[k]) <= c) count++;
        } // if <= a
    } // for j
} // for i
return count;