[python] 리스트 내 요소의 갯수 구하기를 활용한 Code Kata Week2-Day2

지원석·2021년 12월 21일
0

TIL

목록 보기
8/8

4주차 둘째날의 코드카타 문제를 접하였다.

숫자로 이루어진 배열인 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

이와 같은 문젠데, 몇 가지 포인트가 떠올랐다.

1) 기준을 정하는 것!

2) 리스트의 한 요소의 갯수를 구하는 것!

우선, 리스트의 어떤 요소의 갯수를 구하는 문법은 다음과 같다.

list = [1,1,3,4,5,3,3,7,6,8,9,3,2,5,9]
print(list.count(3)) #주어진 list에서 요소3의 개수 구할때 
>>> 4 

위와 같은 count 문법을 이해하고 활용했을 때, 오늘의 코드카타 문제에 대해 난 이렇게 코드를 짰다.

def more_than_half(nums):
  standard = len(nums)//2
  for i in nums:
    if nums.count(i) > standard:
      return i

위에 말한 기준점을 잡는 것에서 len(nums)를 2로 나누어 정수만 남겼다. 사실 그냥 2로 나눠도 상관은 없는 것 같다? (아시는분 댓글!)

for문을 통해 각 리스트 요소에 대해 돌려보면,
각 요소의 갯수가 내가 세운 기준보다 많이 나오면?
그 리스트의 요소가 답인 것이다!

0개의 댓글