๋ฌธ์
๊ฐ์ ์ข ๋ฅ์ ํฐ์ผ๋ชฌ์ ๊ฐ์ ๋ฒํธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์ต๋ํ ๋ค์ํ ์ข ๋ฅ์ ํฐ์ผ๋ชฌ์ ๊ฐ์ง๊ธธ ์ํ๋ค.
์ต๋ํ ๋ง์ ์ข ๋ฅ์ ํฐ์ผ๋ชฌ์ ํฌํจํด์ N/2๋ง๋ฆฌ๋ฅผ ์ ํํ๋ ค๊ณ ํ๋ค.
N๋ง๋ฆฌ์ ํฐ์ผ๋ชฌ ์ข ๋ฅ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด nums๊ฐ ์ฃผ์ด์ง ๋,
N/2๋ง๋ฆฌ์ ํฐ์ผ๋ชฌ์ ์ ํํ๋ ๋ฐฉ๋ฒ ์ค
๊ฐ์ฅ ๋ง์ ์ข ๋ฅ์ ํฌ์ผ๋ชฌ์ ์ ํํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์
ํฐ์ผ๋ชฌ ์ข ๋ฅ ๋ฒํธ์ ๊ฐ์๋ฅผ return
์์ฐ์
์์ ์ ์, ์ฌ๋ฌผ์ ๊ฐ์๋ฅผ ์ ๋ ์ฐ์ด๋ ์์ฌ์ ๊ฐ์ฅ '์์ฐ์ค๋ฌ์ด ์'
์ฝ๋
const solution = (nums) => {
const selectNum = nums.length / 2;
const possibleSelect = nums.reduce((acc, cur, idx, origin) => {
if (origin.indexOf(cur) === idx) acc.push(cur);
return acc;
}, []);
return possibleSelect.length >= selectNum ? selectNum : possibleSelect.length;
}
์ค๋ณต ์ ๊ฑฐ๋ฅผ ๋จผ์ ํด์ฃผ๊ณ , ๊ฐ์๋ฅผ ์ฐพ์์ฃผ๋ฉด ๋๋ ๋ฌธ์ ์๋ค.
reduce๋ฅผ ์ด์ฉํด์ ์ค๋ณต์ ๊ฑฐ๋ฅผ ํด์ฃผ์๋๋ฐ, ์ค๋ณต๋ ๊ฐ์ ํ์ฉํ์ง ์๋ Set ๊ฐ์ฒด๋ฅผ ์ด์ฉํ๋ฉด ๋ ๊ฐ๋จํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์๋ค.
๋ค๋ฅธ์ฌ๋์ ํ์ด
function solution(nums) {
const max = nums.length / 2;
const arr = [...new Set(nums)];
return arr.length > max ? max : arr.length
}
'๐กAlgorithm > ๋ฌธ์ ํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - 2์ฃผ์ฐจ_์ํธํ๊ฐ (0) | 2021.09.23 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - ์ซ์๋ฌธ์์ด๊ณผ ์๋จ์ด (0) | 2021.09.18 |
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - ์์๋ํ๊ธฐ (0) | 2021.09.17 |
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - ํ๊ท ๊ตฌํ๊ธฐ (0) | 2021.09.16 |
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - ์์๋ง๋ค๊ธฐ (0) | 2021.09.16 |