99클럽 코테 스터디 23일차 TIL

Marin·2024년 8월 13일
0

TIL

목록 보기
17/17

1 | 23일차 문제

1. Array Partition

Given an integer array nums of 2n integers, group these integers into n pairs (a1, b1), (a2, b2), ..., (an, bn) such that the sum of min(ai, bi) for all i is maximized. Return the maximized sum.

Example 1:

Input: nums = [1,4,3,2]
Output: 4
Explanation: All possible pairings (ignoring the ordering of elements) are:
1. (1, 4), (2, 3) -> min(1, 4) + min(2, 3) = 1 + 2 = 3
2. (1, 3), (2, 4) -> min(1, 3) + min(2, 4) = 1 + 2 = 3
3. (1, 2), (3, 4) -> min(1, 2) + min(3, 4) = 1 + 3 = 4
So the maximum possible sum is 4.

2. 풀이

오늘은 문제가 너무 쉬웠당

import java.util.Arrays;

class Solution {
    public int arrayPairSum(int[] nums) {

        // 1. 오름차순 정렬
        Arrays.sort(nums);

        // 2. 홀수번쩨 = 짝수 인덱스들의 합
        int maxSum = 0;
        int n = nums.length / 2;
        for (int i = 0; i < n; i++) {
            maxSum += nums[i * 2];
        }
        
        return maxSum;
    }
}

대신 i+=2 도 있다는 거 까먹지 말기!

 for(int i = 0; i < n; i += 2)
            ans += nums[i];

2 | 복습

타입 안전 열거형 패턴 ENUM

  1. 도입: 문자열의 타입 안정성 문제
  • 타입 안정성 문제
  • 데이터 일관성
  • 결국 런타임 오류로 찾아야 해서 디버깅이 어렵다.
  • 새로운 클래스 설계의 필요성
  1. 타입 안정 열거형 패턴
  • 필요조건
    (1) 메서드 영역
    (2) 상수
    (3) 클래스를 타입으로
    (4) 생성자 비공개

  • 장점
    (1) 타입 안정성 증가: 컴파일 오류에서 알 수 있음!
    (2) 제한된 인스턴스 생성, 열거된 항목만 사용 가능

profile
대학생 | BE | 취준 | 습관이 나를 만든다

0개의 댓글