1. ๋ฌธ์ ์์ฝ
N๋ง๋ฆฌ์ ํฌ์ผ๋ชฌ ์ค์์ N/2๋ง๋ฆฌ๋ฅผ ๊ฐ์ ธ๊ฐ ์ ์๋ค. ์ด๋ ์ต๋ํ ๋ค์ํ ์ข ๋ฅ์ ํฌ์ผ๋ชฌ์ ์ ํํ๋ ๊ฒ์ด ๋ชฉํ์ด๋ค.
ํฌ์ผ๋ชฌ์ ์ข
๋ฅ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด nums๊ฐ ์ฃผ์ด์ง ๋, ์ ํํ ์ ์๋ ํฌ์ผ๋ชฌ ์ข
๋ฅ ๊ฐ์์ ์ต๋๊ฐ์ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
2. ์ ๊ทผ ๋ฐฉ์ ๋ฐ ํฌ์ธํธ
๊ฐ์ฅ ๋ง์ ์ข ๋ฅ๋ฅผ ์ ํํ๋ ค๋ฉด ์ค๋ณต๋ ์ข ๋ฅ๋ฅผ ์ ๊ฑฐํ ๋ค, ๋ด๊ฐ ๊ฐ์ ธ๊ฐ ์ ์๋ ์(N/2)์ ๋น๊ตํด์ผ ํ๋ค.
- โ
์๋ฃ๊ตฌ์กฐ: ์ค๋ณต์ ํ์ฉํ์ง ์๋
set์ ์ฌ์ฉํ์ฌ ํฌ์ผ๋ชฌ์ ์ข ๋ฅ๋ฅผ ํ์ ํ๋ค. - โ
๋ก์ง: ํฌ์ผ๋ชฌ ์ข
๋ฅ์ ์(
len(set(nums)))๊ฐ ๋ด๊ฐ ๊ฐ์ง ์ ์๋ ์(len(nums) // 2)๋ณด๋ค ํฌ๋ฉด N/2๋ฅผ ๋ฐํํ๊ณ , ์์ผ๋ฉด ์ข ๋ฅ์ ์๋ฅผ ๊ทธ๋๋ก ๋ฐํํ๋ค.
3. ๊ตฌํ ์ฝ๋ (Python)
def solution(nums):
s = set(nums) # ์ค๋ณต ์ ๊ฑฐ
if len(s) > len(nums) // 2:
return len(nums) // 2
else:
return len(s)
๐ ์ค๋ณต ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ: set()์ ๋ด์ผ๋ฉด ์๋์ผ๋ก ์ค๋ณต์ด ์ ๊ฑฐ๋๋ค.
๐ set์ ํน์ง: iterable(๋ฆฌ์คํธ, ํํ ๋ฑ)์ด๋ฉด ๋ณํ์ด ๊ฐ๋ฅํ์ง๋ง, ์์๋ ๋ฐ๋์ hashable(๋ถ๋ณ ํ์
)์ด์ด์ผ ํ๋ค.
4. ๋ฆฌํฉํ ๋ง - ํ ๋ฒ์ ๋ฆฌํด
min() ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์กฐ๊ฑด๋ฌธ ์์ด ๋ ๊ฐ๊ฒฐํ๊ฒ ์์ฑ์ด ๊ฐ๋ฅํ๋ค.
def solution(nums):
return min(len(set(nums)), len(nums) // 2)
ํฌ์ผ๋ชฌ ์ข ๋ฅ์ ์์ ๊ฐ์ง ์ ์๋ ์ต๋ ์(N/2) ์ค์์ ๋ ์์ ๊ฐ์ ์ ํํ๋ ๊ฒ์ด ๊ณง ๋ฌธ์ ์ ์ ๋ต์ด ๋๋ค. ๊ฐ๋ ์ฑ๊ณผ ๊ฐ๊ฒฐํจ ๋ฉด์์ ํจ์ฌ ํจ์จ์ ์ธ ์ฝ๋์ด๋ค.
'๐งฉ Algorithm > [Programmers] ์๊ณ ๋ฆฌ์ฆ ๊ณ ๋์ KIT' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Programmers/์๊ณ ๋ฆฌ์ฆ ๊ณ ๋์ KIT] ์์ฃผํ์ง ๋ชปํ ์ ์ (0) | 2026.03.18 |
|---|