leetcode 2206_Map

권권·2023년 3월 16일
0

Java 예제🛒

목록 보기
5/14
post-thumbnail

leet 코드 문제

2의 배수의 갯수가 들어있는 배열이 주어졌을 때, 배열안의 요소들을 2개씩 짝지어서 짝이 모두 지어지면 true 를, 그렇지 않으면 false를 반환하는 문제이다.

해결방법

key와 value 을 어떻게 설정해주는지가 중요하였다.
주어진 배열을 일정한 규칙으로 Map에 넣어 주는데, Key는 배열의 요소, Value는 배열의 갯수를 가질 수 있게 하였다.

그리고 key를 먼저 넣어준 뒤, 만약 같은 값을 가진 key가 있다면 기존 Value + 1을 해주는 방식을 취하였다.

코드

class Solution {
    public boolean divideArray(int[] nums) {

        // 같은 값을 2개 씩 묶을 수 있는가

        // 어떤 요소가 짝수갯수 인가? 

        // 숫자, 숫자의 갯수 
        Map<Integer, Integer> map = new HashMap<>();

        // 각 값이 몇개인지 세는 코드
        for ( int n : nums){
            
            if(map.containsKey(n)){
            // 키 n의 value를 1 더해서 다시 entry에 넣는다. 
            int oldValue = map.get(n);
            map.put(n, oldValue+1);}
            else {
                map.put(n,1);

            }

        }

        // value가 홀수인게 있으면 false
        for(Map.Entry<Integer,Integer> entry : map.entrySet()){
            int v = entry.getValue();
            if(v % 2 == 1){
                return false;
            }
        }
        return true;


        
        
    }
}
profile
안녕하세요

0개의 댓글