## 문제 [Majority Element - LeetCode](https://leetcode.com/problems/majority-element) ## 코드 그냥 풀었던 버전 -> 요렇게 풀면 정렬 때문에 시간 복잡도가 O(nlogn)이 나온다. ```typescript function majorityElement(nums: number[]): number { return nums.sort((a, b) => a - b)[Math.floor(nums.length / 2)]; } ``` Boyer–Moore Voting Algorithm ```typescript // Time Complexity: O(n) // Space Complexity: O(1) function majorityElement(nums: number[]): number { let count = 0; let candidate = 0; for (let idx = 0; idx < nums.length; idx++) { // count가 0인 경우에는 현재 요소를 새로운 후보로 설정하고 count = 1 if (count === 0) { candidate = nums[idx]; count = 1; } else { candidate === nums[idx] ? count++ : count--; } } return candidate; } ``` ## 참고