코린이의 소소한 공부노트

[LeetCode/Easy] 2032. Two Out of Three 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 2032. Two Out of Three

무지맘 2023. 4. 27. 01:10

1. Input

1) int[] nums1

2) int[] nums2

3) int[] nums3

 

2. Output

1) 최소 2개의 배열에 존재하는 요소를 담은 리스트를 반환

- 정렬 순서는 상관 없다.

 

3. Constraint

1) 1 <= nums1.length, nums2.length, nums3.length <= 100

2) 1 <= nums1[i], nums2[j], nums3[k] <= 100

 

4. Example

Input: nums1 = [1,1,3,2], nums2 = [2,3], nums3 = [3] -> Output: [3,2]

Input: nums1 = [1,2,2], nums2 = [4,3,3], nums3 = [5] -> Output: []

 

5. Code

1) 첫 코드(2023/04/27)

class Solution {
    public List<Integer> twoOutOfThree(int[] nums1, int[] nums2, int[] nums3) {
        HashMap<Integer,Integer> m = new HashMap<>();
        HashSet<Integer> set = new HashSet<>();
        for(int i : nums1)
            set.add(i);
        Iterator it = set.iterator();
        while(it.hasNext())
            m.put((int)it.next(),1);
        set.clear();
        for(int i : nums2)
            set.add(i);
        it = set.iterator();
        while(it.hasNext()){
            int i = (int)it.next();
            if(m.containsKey(i))
                m.put(i, 2);
            else
                m.put(i, 1);
        }
        set.clear();
        for(int i : nums3)
            set.add(i);
        it = set.iterator();
        while(it.hasNext()){
            int i = (int)it.next();
            if(m.containsKey(i))
                m.put(i, m.get(i)+1);
            else
                m.put(i, 1);
        }
        List<Integer> list = new ArrayList<>();
        it = m.entrySet().iterator();
        while(it.hasNext()){
            Map.Entry e = (Map.Entry)it.next();
            if((int)e.getValue()>=2)
                list.add((int)e.getKey());
        }
        return list;
    }
}