๐ฅ๏ธย ์์ํ๋ฉฐ
Given an arrayยnums
ย of sizeยn
, returnย the majority element.
๋ฐฐ์ด์์ ๊ณผ๋ฐ์ ์์๋ฅผ ์ฐพ์ผ๋ฉด ๋๋ค. ๊ณผ๋ฐ์ ์์๊ฐ ํญ์ ์กด์ฌํ๋ค๊ณ ๊ฐ์ ํ๋ฏ๋ก ๋ฌธ์ ์ ๋์ด๋๊ฐ ์ฌ์์ง๋ค.
ย
โ๏ธย Python
from typing import List class Solution: def majorityElement(self, nums: List[int]) -> int: return max(nums, key=nums.count)
ย
ํ์ด์ฌ์ ๊ฒฝ์ฐ๋ ๋งค์ฐ ์ฝ๋ค. ๋ฌผ๋ก ์๊ฐ ๋ณต์ก๋๊ฐ
O(nยฒ)
์ด์ง๋ง ๊ฐ๋จํ๊ฒ ํ๋ฆฐ๋ค. max
ํจ์์ key๋ก ํจ์๊ฐ ๋ค์ด๊ฐ ์ ์๋ค๋ ๊ฑธ ์๋ ๊ฒ์ด ์ค์ํ๋ค.ย
๐กย ๋ ์ข์ ์์ด๋์ด
class Solution: def majorityElement(self, nums: List[int]) -> int: count = 1 major = nums[0] length = len(nums) for i in range(1, length): if count == 0: count += 1 major = nums[i] elif nums[i] == major: count += 1 else: count -= 1 return major
์๊ฐ ๋ณต์ก๋๊ฐ
O(n)
์ธ ์ข์ ์ฝ๋๋ค. ์ด ์ฝ๋๋ ๊ณผ๋ฐ์ ์์๊ฐ ์ ๋ฐ ์ด์ ๋ฑ์ฅํ๋ค๋ ํน์ฑ์ ์ด์ฉํ์ฌ, ๋ง์ง๋ง๊น์ง ๋จ๋ ์์๊ฐ ์ค์ ๋ก ๊ณผ๋ฐ์ ์์์์ ๋ณด์ฅํ๋ค.ย
๐ย ์๊ฐ
ํ์ด์ฌ์ ๋ฉ์๋๋ฅผ ๋ง์ด ์๋ ๊ฒ ์ค์ํ ๊ฒ ๊ฐ๋ค.
ย
๋๊ธ