Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

yesolje

프로그래머스_고득점kit_해시_폰켓몬 본문

코딩테스트

프로그래머스_고득점kit_해시_폰켓몬

yesolje 2025. 2. 24. 11:37
 

풀이

import java.util.*;

class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        
        HashSet<Integer> hs = new HashSet<>();
        
        for(int a : nums){
            hs.add(a);
        }
        
        return hs.size() > (nums.length)/2 ? (nums.length)/2 : hs.size();
        
    }
}

개념정리

 

Set

✔️객체를 중복해서 저장할 수 없으며, 하나의 null 값만 저장할 수 있다.

✔️비선형 구조이기 때문에 순서와 인덱스가 존재하지 않는다

✔️값 추가 및 삭제 시에 set 내부의 값을 검색하여 기능을 수행한다. List 구조에 비해 수행 속도가 느리다

 

HashSet

✔️Set 인터페이스를 구현한 클래스로 중복된 값을 허용하지 않고, 저장한 순서가 보장되지 않는다.

(LinkedHashSet을 사용하여 저장순서를 유지할 수 있음)

✔️null 값을 허용한다.

 

HashSet의 선언 및 사용

import java.util.*;

class Solution {
    HashSet<Integer> set = new HashSet<>();

    set.add(1);

    set.add(2);

    int setSize = set.size(); //set의 크기를 구할 수있다.

    set.remove(1); //값 1 제거

    set.clear(); //모든 값을 제거

    boolean flag = set.contains(2); //값이 있는지 확인
}