해당 게시글은 [Java] 어서와! 자료구조 알고리즘은 처음이지?https://programmers.co.kr/learn/courses/13577를 간략히 요약한 게시글이며 모든 출처는 해당강의에 있습니다.
포켓몬의 종류
를 구하는 문제입니다. 즉 포켓몬의 갯수가 많아도 종류가 적으면 답이 적은 문제입니다.
포켓몬의 종류가 몇가지인지가 핵심이 되는 문제입니다. 중복을 없애야 하므로 HashMap
을 사용하면 손쉽게 중복여부를 가려내고 종류만 얻을 수 있습니다. 종류의 갯수를 n1, 포켓몬수 /2를 n2변수에 저장하여 둘 중 적은 값을 출력합니다.
Map<Integer, Integer> map = new HashMap<>();
for(int n : nums) map.put(n,0);
int n1 = map.keySet().size();
int n2 = nums.length / 2;
return Math.min(n1,n2);
강의에서 소개된 간략한 풀이입니다.
import java.util.*;
class Solution {
public int solution(int[] nums) {
Map<Integer, Integer> map = new HashMap<>();
for(int n : nums) map.put(n,0);
return Math.min(map.keySet().size(),nums.length/2);
}
}
제가 직적 풀은 자세한 풀이입니다.