https://school.programmers.co.kr/learn/courses/30/lessons/1845
๐ ํ์ด 3 : Stream.distinct()
`Stream`์ผ๋ก ๋ณํ ํ `distinct()` ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ณต์ ์ ๊ฑฐํ๋ค.โญ
import java.util.*;
class Solution {
// N๋ง๋ฆฌ ์ข
๋ฅ ๋ฐฐ์ด์ด ์ฃผ์ด์ง ๋, N/2๋ง๋ฆฌ๋ฅผ ์ ํํ ๊ฒฝ์ฐ ๊ฐ์ง ์ ์๋ ์ต๋ ์ข
๋ฅ ๊ฐ์ ๋ฐํ
public int solution(int[] nums) {
return Math.min(
(int) Arrays.stream(nums).distinct().count(),
nums.length / 2); // ์ค๋ณต์ ์ ๊ฑฐํ ์ข
๋ฅ์, ๊ณ ๋ฅผ ๋ง๋ฆฌ ์ ์ค ์ต์๊ฐ ๋ฐํ
}
}
๐ ํ์ด 2 : HashSet + Stream
`Collectors.collectingAndThen()` ๋ฉ์๋๋ฅผ ํตํด ์์ง๊ณผ ํ์ฒ๋ฆฌ๋ฅผ ์ฐ์์ ์ผ๋ก ์ํํ ์ ์๋ค.
import java.util.*;
import java.util.stream.Collectors;
class Solution {
// N๋ง๋ฆฌ ์ข
๋ฅ ๋ฐฐ์ด์ด ์ฃผ์ด์ง ๋, N/2๋ง๋ฆฌ๋ฅผ ์ ํํ ๊ฒฝ์ฐ ๊ฐ์ง ์ ์๋ ์ต๋ ์ข
๋ฅ ๊ฐ์ ๋ฐํ
public int solution(int[] nums) {
return Arrays.stream(nums)
.boxed()// int๋ฅผ Integer ๊ฐ์ฒด๋ก ๋ณํ
.collect(Collectors.collectingAndThen(Collectors.toSet(), // Set์ผ๋ก ์์ง ํ ํ์ฒ๋ฆฌ
set -> Integer.min(set.size(), nums.length / 2)));
}
}
๐ ํ์ด 1 : HashSet
`HashSet`์ผ๋ก ๋ณํํ์ฌ ์ค๋ณต์ ์ ๊ฑฐํ๋ค.
import java.util.*;
class Solution {
// N๋ง๋ฆฌ ์ข
๋ฅ ๋ฐฐ์ด์ด ์ฃผ์ด์ง ๋, N/2๋ง๋ฆฌ๋ฅผ ์ ํํ ๊ฒฝ์ฐ ๊ฐ์ง ์ ์๋ ์ต๋ ์ข
๋ฅ ๊ฐ์ ๋ฐํ
public int solution(int[] nums) {
// HashSet<Integer>๋ก ๋ณํ
Set<Integer> set = new HashSet<>();
for (int num : nums) set.add(num);
return Math.min(set.size(), nums.length / 2); // ์ค๋ณต์ ์ ๊ฑฐํ ์ข
๋ฅ์, ๊ณ ๋ฅผ ๋ง๋ฆฌ ์ ์ค ์ต์๊ฐ ๋ฐํ
}
}
'๐ท์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ํคํจ๋ ๋๋ฅด๊ธฐ(๋งจํดํผ ๊ฑฐ๋ฆฌ) (0) | 2024.09.01 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/Java] 2016๋ (Calendar, LocalDate) (0) | 2024.08.22 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ์นด๋ ๋ญ์น(LinkedList(Queue)) (0) | 2024.08.17 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ์ถ์ต ์ ์(List.indexOf()) (0) | 2024.08.17 |