21.3.9
알고리즘 6일차
문제 : 리스트 인자 중 과반이 되는 요소 추출
- 접근 :
- 요소의 갯수가 관건. 그러므로 count로 접근.
- 과반수 : 전체 len값의 1/2
- 내 코드 :
def more_than_half(nums):
result = []
for i in nums:
if nums.count(i) >= len(nums) / 2:
result.append(i)
return result[0]
# 요소 모두가 같으므로 1개만 뽑아옴.
print(more_than_half([3, 2, 3]))
- 필요했던 개념 : 리스트 갯수에 대한 내용.
난이도가 높지 않아서 금방 해결했다.
다른 접근(21.5.1)
def more_than_half(nums):
nums.sort()
# 순서 상관 없으므로 일단 정렬
to_dict = {i : nums.count(i) for i in nums}
# list comprehension으로 리스트를 딕셔너리화하고 각 요소가 몇 개인지 확인
return max(to_dict.keys(), key=lambda k : to_dict[k])
# lambda 이용하여 가장 큰 키의 값을 추출
print(more_than_half([0,1,2,3,0,0,0,0,0]))
Author And Source
이 문제에 관하여(21.3.9), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sinichy7/21.3.9알고리즘저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)