상세 컨텐츠

본문 제목

169. Majority Element (C++)

알고리즘/leetcode

by 아리따운노을 2021. 10. 31. 22:58

본문

https://leetcode.com/problems/majority-element/

 

Majority Element - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

한 배열 안에서 가장 많은 숫자가 무엇인지 알아내는 문제인데

문제의 조건에서 The majority element is the element that appears more than ⌊n / 2⌋ times. 

이라고 나와있다. 즉, 가장 많은 숫자 등장 횟수는 배열 길이의 절반 이상보다 많다는 걸 의미한다.

 

이게 Boyer-Moore Voting Algorithm이라고 한다. 역시 학부생 때 알고리즘 공부를 좀 소홀히 했더니 모르는게 많다. 이런 정렬 알고리이나 탐색 알고리즘은 현업에서도 꽤나 유용하게 쓰일 수 있기 때문에 이런 것도 많이 공부해야 겠다.

 

그래서 풀이는 아주 간단하다.

 

1
2
3
4
5
6
7
class Solution {
public:
    int majorityElement(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        return nums[nums.size()/2];
    }
};
cs

 

 

'알고리즘 > leetcode' 카테고리의 다른 글

804. Unique Morse Code Words (C++)  (0) 2021.10.31
202. Happy Number (C++)  (0) 2021.10.07
190. Reverse Bits (C++)  (0) 2021.10.07
20. Valid Parentheses (C++)  (0) 2021.10.06
119. Pascal's Triangle II (C++)  (0) 2021.10.05

관련글 더보기

댓글 영역