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

수삼·2024년 11월 6일
0

코딩테스트

목록 보기
15/44

import java.io.*;
import java.util.*;
import java.lang.*;

class Solution {
    public int solution(int[] nums) {
        int len = nums.length / 2;
        int resultLen = Arrays.stream(nums).distinct().toArray().length;  
        return resultLen < len ? resultLen : len;
    }
}

HashSet이나 Stream으로 중복제거를 할 수 있다
이번 문제는 지문은 긴데 로직은 간단한 편인듯...

Set 클래스에 대해 알아보자....

Collection 인터페이스 기반으로 구현한 클래스에 List와 Set이 있다.

  • List와 비교했을 때 HashSet 속도가 엄청 빠르다
  • Set은 객체 저장 시 hashCode() 호출 후 그 값의 위치를 계산한다.
  • value가 같으면 hashCode() 리턴 값도 같기 때문에 중복 저장되지 않는다.
  • add(스트링만 저장 가능), remove, clear, size 메소드 사용
  • 순서 보장 안됨
  • 저장 순서를 유지하려면 LinkedHashSet을 사용하면 된다

0개의 댓글