โค๏ธ Problem
- ๋ฌธ์
๋น์ ์ ํฐ์ผ๋ชฌ์ ์ก๊ธฐ ์ํ ์ค๋ ์ฌํ ๋์, ํ ๋ฐ์ฌ๋์ ์ฐ๊ตฌ์ค์ ๋์ฐฉํ์ต๋๋ค. ํ ๋ฐ์ฌ๋์ ๋น์ ์๊ฒ ์์ ์ ์ฐ๊ตฌ์ค์ ์๋ ์ด N ๋ง๋ฆฌ์ ํฐ์ผ๋ชฌ ์ค์์ N/2๋ง๋ฆฌ๋ฅผ ๊ฐ์ ธ๊ฐ๋ ์ข๋ค๊ณ ํ์ต๋๋ค.
ํ ๋ฐ์ฌ๋ ์ฐ๊ตฌ์ค์ ํฐ์ผ๋ชฌ์ ์ข ๋ฅ์ ๋ฐ๋ผ ๋ฒํธ๋ฅผ ๋ถ์ฌ ๊ตฌ๋ถํฉ๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ ์ข ๋ฅ์ ํฐ์ผ๋ชฌ์ ๊ฐ์ ๋ฒํธ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ฐ๊ตฌ์ค์ ์ด 4๋ง๋ฆฌ์ ํฐ์ผ๋ชฌ์ด ์๊ณ , ๊ฐ ํฐ์ผ๋ชฌ์ ์ข ๋ฅ ๋ฒํธ๊ฐ [3๋ฒ, 1๋ฒ, 2๋ฒ, 3๋ฒ]์ด๋ผ๋ฉด ์ด๋ 3๋ฒ ํฐ์ผ๋ชฌ ๋ ๋ง๋ฆฌ, 1๋ฒ ํฐ์ผ๋ชฌ ํ ๋ง๋ฆฌ, 2๋ฒ ํฐ์ผ๋ชฌ ํ ๋ง๋ฆฌ๊ฐ ์์์ ๋ํ๋ ๋๋ค. ์ด๋, 4๋ง๋ฆฌ์ ํฐ์ผ๋ชฌ ์ค 2๋ง๋ฆฌ๋ฅผ ๊ณ ๋ฅด๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด 6๊ฐ์ง๊ฐ ์์ต๋๋ค.
1. ์ฒซ ๋ฒ์งธ(3๋ฒ), ๋ ๋ฒ์งธ(1๋ฒ) ํฐ์ผ๋ชฌ์ ์ ํ
2. ์ฒซ ๋ฒ์งธ(3๋ฒ), ์ธ ๋ฒ์งธ(2๋ฒ) ํฐ์ผ๋ชฌ์ ์ ํ
3. ์ฒซ ๋ฒ์งธ(3๋ฒ), ๋ค ๋ฒ์งธ(3๋ฒ) ํฐ์ผ๋ชฌ์ ์ ํ
4. ๋ ๋ฒ์งธ(1๋ฒ), ์ธ ๋ฒ์งธ(2๋ฒ) ํฐ์ผ๋ชฌ์ ์ ํ
5. ๋ ๋ฒ์งธ(1๋ฒ), ๋ค ๋ฒ์งธ(3๋ฒ) ํฐ์ผ๋ชฌ์ ์ ํ
6. ์ธ ๋ฒ์งธ(2๋ฒ), ๋ค ๋ฒ์งธ(3๋ฒ) ํฐ์ผ๋ชฌ์ ์ ํ
์ด๋, ์ฒซ ๋ฒ์งธ(3๋ฒ) ํฐ์ผ๋ชฌ๊ณผ ๋ค ๋ฒ์งธ(3๋ฒ) ํฐ์ผ๋ชฌ์ ์ ํํ๋ ๋ฐฉ๋ฒ์ ํ ์ข ๋ฅ(3๋ฒ ํฐ์ผ๋ชฌ ๋ ๋ง๋ฆฌ)์ ํฐ์ผ๋ชฌ๋ง ๊ฐ์ง ์ ์์ง๋ง, ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ค์ ๋ชจ๋ ๋ ์ข ๋ฅ์ ํฐ์ผ๋ชฌ์ ๊ฐ์ง ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ์์์์ ๊ฐ์ง ์ ์๋ ํฐ์ผ๋ชฌ ์ข ๋ฅ ์์ ์ต๋๊ฐ์ 2๊ฐ ๋ฉ๋๋ค.
๋น์ ์ ์ต๋ํ ๋ค์ํ ์ข ๋ฅ์ ํฐ์ผ๋ชฌ์ ๊ฐ์ง๊ธธ ์ํ๊ธฐ ๋๋ฌธ์, ์ต๋ํ ๋ง์ ์ข ๋ฅ์ ํฐ์ผ๋ชฌ์ ํฌํจํด์ N/2๋ง๋ฆฌ๋ฅผ ์ ํํ๋ ค ํฉ๋๋ค. N๋ง๋ฆฌ ํฐ์ผ๋ชฌ์ ์ข ๋ฅ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด nums๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, N/2๋ง๋ฆฌ์ ํฐ์ผ๋ชฌ์ ์ ํํ๋ ๋ฐฉ๋ฒ ์ค, ๊ฐ์ฅ ๋ง์ ์ข ๋ฅ์ ํฐ์ผ๋ชฌ์ ์ ํํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์, ๊ทธ๋์ ํฐ์ผ๋ชฌ ์ข ๋ฅ ๋ฒํธ์ ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
- ์ ํ ์ฌํญ
- nums๋ ํฐ์ผ๋ชฌ์ ์ข ๋ฅ ๋ฒํธ๊ฐ ๋ด๊ธด 1์ฐจ์ ๋ฐฐ์ด์ ๋๋ค.
- nums์ ๊ธธ์ด(N)๋ 1 ์ด์ 10,000 ์ดํ์ ์์ฐ์์ด๋ฉฐ, ํญ์ ์ง์๋ก ์ฃผ์ด์ง๋๋ค.
- ํฐ์ผ๋ชฌ์ ์ข ๋ฅ ๋ฒํธ๋ 1 ์ด์ 200,000 ์ดํ์ ์์ฐ์๋ก ๋ํ๋ ๋๋ค.
- ๊ฐ์ฅ ๋ง์ ์ข ๋ฅ์ ํฐ์ผ๋ชฌ์ ์ ํํ๋ ๋ฐฉ๋ฒ์ด ์ฌ๋ฌ ๊ฐ์ง์ธ ๊ฒฝ์ฐ์๋, ์ ํํ ์ ์๋ ํฐ์ผ๋ชฌ ์ข ๋ฅ ๊ฐ์์ ์ต๋๊ฐ ํ๋๋ง return ํ๋ฉด ๋ฉ๋๋ค.
- ์ ์ถ๋ ฅ ์ & ์ค๋ช
no | nums | result |
1 | [3,1,2,3] | 2 |
2 | [3,3,3,2,2,4] | 3 |
3 | [3,3,3,2,2,2] | 2 |
- ๋ฌธ์ ์ ์์์ ๊ฐ์ต๋๋ค.
- 6๋ง๋ฆฌ์ ํฐ์ผ๋ชฌ์ด ์์ผ๋ฏ๋ก, 3๋ง๋ฆฌ์ ํฐ์ผ๋ชฌ์ ๊ณจ๋ผ์ผ ํฉ๋๋ค.
๊ฐ์ฅ ๋ง์ ์ข ๋ฅ์ ํฐ์ผ๋ชฌ์ ๊ณ ๋ฅด๊ธฐ ์ํด์๋ 3๋ฒ ํฐ์ผ๋ชฌ ํ ๋ง๋ฆฌ, 2๋ฒ ํฐ์ผ๋ชฌ ํ ๋ง๋ฆฌ, 4๋ฒ ํฐ์ผ๋ชฌ ํ ๋ง๋ฆฌ๋ฅผ ๊ณ ๋ฅด๋ฉด ๋๋ฉฐ, ๋ฐ๋ผ์ 3์ return ํฉ๋๋ค. - 6๋ง๋ฆฌ์ ํฐ์ผ๋ชฌ์ด ์์ผ๋ฏ๋ก, 3๋ง๋ฆฌ์ ํฐ์ผ๋ชฌ์ ๊ณจ๋ผ์ผ ํฉ๋๋ค.
๊ฐ์ฅ ๋ง์ ์ข ๋ฅ์ ํฐ์ผ๋ชฌ์ ๊ณ ๋ฅด๊ธฐ ์ํด์๋ 3๋ฒ ํฐ์ผ๋ชฌ ํ ๋ง๋ฆฌ์ 2๋ฒ ํฐ์ผ๋ชฌ ๋ ๋ง๋ฆฌ๋ฅผ ๊ณ ๋ฅด๊ฑฐ๋, ํน์ 3๋ฒ ํฐ์ผ๋ชฌ ๋ ๋ง๋ฆฌ์ 2๋ฒ ํฐ์ผ๋ชฌ ํ ๋ง๋ฆฌ๋ฅผ ๊ณ ๋ฅด๋ฉด ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ต๋ ๊ณ ๋ฅผ ์ ์๋ ํฐ์ผ๋ชฌ ์ข ๋ฅ์ ์๋ 2์ ๋๋ค.
๐ Solution
ํ์ด
import java.util.HashSet;
import java.util.Set;
class Solution {
public int solution(int[] nums) {
int getMonstsers = nums.length/2;
Set<Integer> st = new HashSet<>();
for(int i=0; i<nums.length; i++) {
st.add(nums[i]);
}
if(st.size()>=getMonstsers) {
return getMonstsers;
} else {
return st.size();
}
}
}
์ฒ๋ฆฌ์๋ GOOD๐
๐ Comment
๋จผ์ ๊ฐ์ ธ๊ฐ์ผ ํ๋ ํฐ์ผ๋ชฌ์ ๋ง๋ฆฟ์(nums.length/2)๋ฅผ int getMonsters์ ๋ฃ์ด๋์๋ค. ๊ทธ ๋ค์, int[] nums์ ์๋ ํฐ์ผ๋ชฌ ์ข ๋ฅ๋ฅผ HashSet<Integer> st์ ์ ๋ ฅํ๋ค. HashSet<Integer> st์ ์ฌ์ฉํ๋ฉด ์ค๋ณต๊ฐ์ ํจ๊ณผ์ ์ผ๋ก ์ ๊ฑฐํ ์ ์๋ค.
์ด ๋, st.size()๋ ํฐ์ผ๋ชฌ์ ์ด ์ข ๋ฅ ๋ฒํธ์ ๋ํ ๊ฐ์ง์๊ฐ ๋๋ค. ๋ฐ๋ผ์, ๊ฐ์ ธ๊ฐ์ผํ๋ ํฐ์ผ๋ชฌ์ ๋ง๋ฆฟ์(getMonsters)์ HashSet<Integer> st๋ฅผ ๋น๊ตํด์ st.size()๊ฐ ๋ ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉด getMonsters๋ฅผ ๋ฐํํ๊ณ ๋ ์์ผ๋ฉด st.size()๋ฅผ ๋ฐํํ๋ฉด ๋๋ค.
๊ทธ ์ด์ ๋ ํฐ์ผ๋ชฌ ๊ฐ์ง์์ธ st.size()๊ฐ ๊ฐ์ ธ๊ฐ์ผํ๋ ๋ง๋ฆฟ์์ธ getMonsters๋ณด๋ค ํฌ๋ฉด, ๊ฐ์ง์ ํ๋์ฉ๋ง์ ์ ํํ๋ฉด ๋๋ฏ๋ก ๊ฒฐ๊ตญ getMonsters์ ๊ฐ์ง์๊ฐ ์ผ์นํ๊ฒ ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๋ง์ฝ ํฐ์ผ๋ชฌ์ ๊ฐ์ง์ st.size()๊ฐ ๊ฐ์ ธ๊ฐ์ผํ๋ ๋ง๋ฆฟ์์ธ getMonsters ๋ณด๋ค ์์ ๊ฒฝ์ฐ, ๊ฐ์ง์๋งํผ์ ๊ฐ์ ธ๊ฐ๊ฒ ๋๋ฏ๋ก st.size()๋ฅผ ๋ฐํํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
'Programmers lv-1' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์ฃผํ์ง ๋ชปํ ์ ์ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2022.12.23 |
---|---|
์ฝ๋ผ ๋ฌธ์ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2022.12.21 |
๋ชจ์๊ณ ์ฌ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2022.12.19 |
2016๋ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2022.12.17 |
๋ ๊ฐ ๋ฝ์์ ๋ํ๊ธฐ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2022.12.14 |
์ผ์ด์ฌ - Java [์ฝ๋ฉํ ์คํธ ์ฐ์ต] (0) | 2022.12.13 |
๋๊ธ