코린이의 소소한 공부노트

[LeetCode/Easy] 561. Array Partition 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 561. Array Partition

무지맘 2022. 12. 2. 00:37

1. Input

1) int 배열 nums

 

2. Output

1) nums 안의 수를 2개씩 그룹을 했을 때, 각 그룹에서 더 작은 수끼리의 합을 구한다.

2) 그룹을 지을 수 있는 가능한 모든 경우의 수 중 합이 가장 큰 것을 반환한다.

 

3. Constraint

1) 1 <= n <= 104

2) nums.length == 2 * n

3) - 10^4 <= nums[i] <= 10^4

 

4. Example

Input: nums={1,4,3,2} -> Output: 4

설명: 2개씩 그룹을 할 수 있는 모든 경우와 각 그룹에서 더 작은수끼리 더한 합을 구해보면

(1, 4), (2, 3) -> 1 + 2 = 3

(1, 3), (2, 4) -> 1 + 2 = 3

(1, 2), (3, 4) -> 1 + 3 = 4

따라서 가장 큰 합인 4를 반환한다.

 

5. Code

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

Arrays.sort(nums);
int sum = 0;
for(int i=0 ; i<nums.length ; i+=2)
    sum += nums[i];
return sum;