문제 풀이 (JAVA)
import java.util.*;
class Solution {
public int solution(int[] nums) {
int answer = 0;
int n=nums.length/2; // 최대로 고를수 있는 숫자
Set<Integer> set= new HashSet<Integer>(); // 중복을 허용하지 않는 HashSet 변수 설정
for(int i=0; i<nums.length; i++){
set.add(nums[i]); // 중복되지 않는 숫자를 Set 변수에 저장
}
if(set.size()>n){ // 저장된 숫자가 최대로 고를수 있는 숫자 n보다 크다면
answer=n; // 최대 숫자 n을 리턴
}else{ // 저장된 숫자가 최대 숫자 n보다 작다면
answer=set.size(); // Set에 저장된 숫자 리턴
}
return answer;
}
}
주요 핵심 포인트
1. n은 최대로 고를수 있는 종류 변수이다.
2. Set은 중복을 허용하지 않기 때문에 중복된 숫자를 제거하여 저장하기 위하여 변수를 생성하였다.
3. Set에 저장된 숫자의 종류가 최대로 고를수 있는 숫자 n보다 크다면 최대로 고를수 있는 숫자는 n개이다.
4. Set에 저장된 숫자가 n보다 작다면 set에 저장된 숫자만큼을 최대 종류로 고를수 있다.
'프로그래머스(JAVA)' 카테고리의 다른 글
완주하지 못한 선수 (0) | 2022.05.21 |
---|---|
모의고사 (0) | 2022.05.21 |
실패율 (0) | 2022.05.21 |
약수의 개수와 덧셈 (0) | 2022.05.21 |
3진법 뒤집기 (0) | 2022.05.21 |