CODE KATA7

On a regular basis·2021년 5월 4일
0
post-thumbnail

문제

숫자로 이루어진 배열인 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절을 통해 서로 비교해주면 훨씬 간결하고 쉬워진다. 연습!!!
profile
개발 기록

0개의 댓글