- 첫λ²μ§Έ μ«μλ₯Ό κΈ°μ€μΌλ‘ μ«μμ κ°μ(count)λ₯Ό μΌλ€.
- λ§μΌ λ€λ₯Έ μ«μκ° λμ€λ©΄ countλ₯Ό κ°μμν€κ³ countκ° 0μ΄ λλ©΄ μλ‘ μΆνν μ«μλ₯Ό κΈ°μ€μΌλ‘ κ°μλ₯Ό μΌλ€.
- κ³Όλ° μ«μλ νμ μ‘΄μ¬νλ€κ³ κ°μ νλ€λ©΄ μ 체 arrayμμ κ³Όλ° μ«μμ μκ° μ λ° μ΄μμΌ κ²μ΄λ―λ‘ λκΉμ§ μΈμμ λ κ³Όλ° μ«μμ count κ°μ 1 μ΄μμ΄ λλ€.
- λ§μΌ κ³Όλ° μ«μκ° μλ κ²½μ°λΌλ©΄ μ΄ μκ³ λ¦¬μ¦μ μ±λ¦½νμ§ μλλ€ (μ: μ΄λ€ λ μ«μκ° λλ±ν κ°μλ§νΌ μλ κ²½μ°).
class Solution {
public:
int majorityElement(vector<int>& nums) {
int elem = nums[0];
int count = 1;
for (int i = 1; i < nums.size(); ++i) {
if (nums[i] != elem) --count;
else ++count;
if (count == 0) {
elem = nums[i];
count = 1;
}
}
return elem;
}
};