문제
숫자로 이루어진 배열인 nums를 인자로 전달합니다.
숫자중에서 과반수(majority, more than a half)가 넘은 숫자를 반환해주세요.
- 예를 들어,
nums = [3,2,3]
return 3
nums = [2,2,1,1,1,2,2]
return 2
nums = [3,2,3]
return 3
nums = [2,2,1,1,1,2,2]
return 2- 가정
nums 배열의 길이는 무조건 2 이상입니다.
내 답변
def more_than_half(nums): nums_set = set(nums) for i in nums_set: if nums.count(i) > (len(nums)/2): return i
# nums를 set에 넣어주어 중복을 없앤 값을 nums_set에 넣어준다. # 그 nums_set에서 i를 하나씩 뽑아서 for 문을 만든다. # 과반수 이상이라고 했으니까 len함수를 사용해 nums를 넣고 2로 나눠주면되고, 그 값보다 i의 개수가 많으면, return으로 i 반환! # 로직으로 생각하면 어떻게든 해보겠는데 코드로 구현하려면 아직 부족한 것 같다. set에 넣어 중복을 없애주고, count에 넣어 if절을 통해 서로 비교해주면 훨씬 간결하고 쉬워진다. 연습!!!