๋ฌธ์ œ

๊ฐ™์€ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์€ ๊ฐ™์€ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๋‹ค. 

์ตœ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ๊ฐ€์ง€๊ธธ ์›ํ•œ๋‹ค. 

์ตœ๋Œ€ํ•œ ๋งŽ์€ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ํฌํ•จํ•ด์„œ 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
}

+ Recent posts