
주어진 배열의 길이 값의 절반 만큼 선택할 수 있으나
배열의 요소가 중복이 되어있으면 선택횟수보다 선택할 수 있는 종류가 줄어든다.
배열의 중복요소를 제거한 후. 원래 배열 길이값의 절반(a)과 중복요소를 제거한 배열의 길이(b)를 비교하여
a와 b를 필요 맞게 출력하면 되는 데
일단 배열의 중복요소를 제거하는 것 중에 편한방법이 HashSet을 이용하거나 ArrayList를 사용하는 것인데
[Java/자바] - 배열에서 중복을 제거하고 정렬하기
안녕하세요, 오늘 문득 공부하다가 배열에서 중복을 제거하고 정렬은 어떻게하면 될지 생각하다가 한 번 정...
blog.naver.com
HashSet 사용이 출제의도인거 같아서 HashSet을 사용하여 풀었다.
import java.util.HashSet;
import java.util.Set;
class Solution {
public int solution(int[] nums) {
int answer = nums.length/2;
Set<Integer> set = new HashSet<Integer>();
for(int i : nums){
set.add(i);
}
return (set.size() > answer)? answer : set.size();
}
}
우선 주어진 int 배열의 길이를 반으로 나눈 값을 선언해주고
빈 HashSet을 만들어준다.
그리고나서 주어진 int 배열을 HashSet에 추가해주는데 HashSet은 중복값이 저장 안되므로
결국 중복되지 않은 값만 저장이된다.
출력에 삼항연산으로 값을 비교후 HashSet의 길이가 주어진 배열의 길이의 절반보다 같거나 클 때
HashSet의 길이를 출력해주도록 해서 통과했다
끝.
https://school.programmers.co.kr/learn/courses/30/lessons/1845?language=java
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'배운 거 > Algorithm' 카테고리의 다른 글
| 백준 1417 국회의원 선거 JAVA (0) | 2022.08.22 |
|---|---|
| 백준 1064 평행사변형 JAVA (0) | 2022.08.14 |
| [lv2. 연습문제] 최댓값과 최소값 (0) | 2022.08.02 |
| [연습문제]핸드폰 번호 가리기 (0) | 2022.08.01 |
| [연습문제] 정수내림차순으로 배치하기 (0) | 2022.07.31 |