[Python] LeetCode 169. Majority Element

송진영·2023년 8월 25일
0

LeetCode

목록 보기
4/8

문제 풀이

리스트의 길이 / 2 보다 중복 개수가 많은 원소들 중에서 가장 높은 원소를 return 해주는 문제이다.

  1. int defaultdict를 선언해준다.

  2. for문으로 리스트를 탐색한다.

  3. 딕셔너리에 원소의 개수를 1씩 더해 카운트 해준다.

  4. 원소의 개수가 리스트의 길이 / 2 보다 큰지 확인한다.

  5. 크다면 result 리스트에 저장한다.

  6. result 리스트 중 가장 큰 값을 return 한다.

from collections import defaultdict
class Solution:
    def majorityElement(self, nums: List[int]) -> int:
        nums_cnt = defaultdict(int) ## 1. int defaultdict를 선언해준다.
        leng = len(nums)
        result = []
        for i in range(leng): ## 2. for문으로 리스트를 탐색한다.
            nums_cnt[nums[i]] += 1 ## 3. 딕셔너리에 원소의 개수를 1씩 더해 카운트 해준다.
            if nums_cnt[nums[i]] >= leng/2: ## 4. 원소의 개수가 리스트의 길이 / 2 보다 큰지 확인한다.
                result.append(nums[i]) ## 5. 크다면 result 리스트에 저장한다.
        return max(result) ## 6. result 리스트 중 가장 큰 값을 return 한다.
profile
못하는 건 없다. 단지 그만큼 노력을 안 할 뿐이다.

0개의 댓글