폰켓몬
문제정의
폰켓몬의 갯수 중 절반을 가져갈 수 있을 때, 최대로 가져갈 수 있는 폰켓몬의 종류를 반환하는 문제이다. 같은 종류의 폰켓몬은 같은 자연수 값을 갖는다.
문제풀이
전체 코드는 다음과 같다. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24package level2;
import java.util.HashMap;
public class Ponketmon {
//프로그래머스 문제풀이 level2 폰켓몬
public static void main(String[] args) {
int[] nums = {3, 1, 2, 3};
int answer = 0;
HashMap<Integer, Integer> map = new HashMap<>();
for(int n : nums)
{
map.put(n, map.getOrDefault(n, 0)+1);
}
if(map.size() < nums.length/2)
answer = map.size();
else
answer = nums.length/2;
System.out.println(answer);
}
}
최종 시간복잡도는 \(O(n)\)이다.