TIL. 27 CodeKata#4

한상웅·2021년 7월 27일
1

CodeKata

목록 보기
3/4
post-thumbnail

Question

숫자로 이루어진 배열인 nums를 인자로 전달합니다.

숫자중에서 과반수(majority, more than a half)가 넘은 숫자를 반환해주세요.

예를 들어,

nums = [3,2,3]
return 3

*nums 배열의 길이는 무조건 2 이상입니다.

풀이

def more_than_half(nums):
    major= len(nums) // 2 -->절반보다 많은게 과반수이므로
    set_list = set(nums) -->list nums를 setl list로 지정
    for i in set_list: --> for문을 통해서 반복시킴
        if nums.count(i) >= major:  --> major보다 크면 과반수
            return i
print(more_than_half([4, 4, 4, 3]))

*count(): count는 리스트 내부의 문자의 개수를 반환해줌./특정요소 개수 반환.
대상.count(찾는요소) 형태. 리스트랑 문자열을 대상으로 사용가능.

i = [1,1,3,4,1,1]

print(i.count(1))

>>> 4 -->요소에서 1의 개수

*len(): 리스트 요소의 개수를 반환해줌.

nums = [1,1,3,4,1,1]
print(len(nums))

>>>6 --요소의 개수

다른풀이

def more_than_half(nums):
    # 아래 코드를 입력해주세요.
    num = 0
    majority = 0
    for i in nums:
      count = 0
      for j in nums:
        if i == j:
          count += 1
        if count > majority:
          majority = count
          num = i
    return num
print(more_than_half([3,2,3]))
print(more_than_half([2,2,1,1,1,2,2]))
profile
Let's get it!

0개의 댓글