본문 바로가기
알고리즘/프로그래머스 LV2

프로그래머스 귤 고르기 ( LV 2 ) + entrySet() 활용

by 꽃요미 2025. 1. 21.

https://school.programmers.co.kr/learn/courses/30/lessons/138476

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

- 귤의 갯수를 가장 적은 가짓수로 담으면 되는 문제이다.

- 갯수를 큰거를 기준으로 정렬 후 담으려는 k개 보다 크거나 같으면 그 횟수를 return 시켜주면 된다.

- 코드레벨로 구현하면서 Map에 있는 key와 value를 모두 접근이 필요한 상황에 entrySet() 으로 접근이 가능하다는 것을 알았다.

- 문제 푸는 방법은 간단하니 entrySet() 접근 방법을 정리하고 마치겠다.

 

* Java Map의 entrySet()이란?

 - Java Map 인터페이스에서 제공하는 메서드로, Map의 모든 키-값쌍을 Set으로 반환한다. Set은 Map.Entry 객체들의 집합으로 구성되어 있고, 각 Map 객체는 하나의 키와 그에 연결된 값을 나타낸다.

 - 반환값 : Set<Map.Entry<K.V>> 각 항목이 Map.Entry 타입의 객체로 구성된 Set.

 - 수정 가능 : 반환된 Set을 통해 Map 내용을 수정 가능하다.

 - 반복 가능 : for-each 루프 혹은 Iterator로 순회할 수 있다.

 - Map.Entry

  -> getKey() : 현재 엔트리 키 반환

  -> getValue() : 현재 엔트리 값 반환

  -> setValue() : 현재 엔트리의 값을 수정

 

사용 예제

 

public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("apple", 3);
        map.put("banana", 1);
        map.put("cherry", 2);
        
        for(Map.Entry<String, Integer> mapEntry : map.entrySet) {
        	mapEntry.getValue();
            mapEntry.getKey();
            mapEntry.setValue();
        }
    }
}

 

- 기존 map의 .entrySet() 메서드를 이용하여 Map.Entry<K.V> 할당해서 사용한다.