View
문제
숫자로 이루어진 배열인 nums를 인자로 전달합니다.
숫자중에서 과반수(majority, more than a half)가 넘은 숫자를 반환해주세요.
예를 들어,
nums = [3,2,3]
return 3
nums = [2,2,1,1,1,2,2]
return 2
가정
nums 배열의 길이는 무조건 2 이상입니다.
나의 풀이
def more_than_half(nums):
index_dict = {}
for i in range(0,len(nums)):
count = 0
for j in range(0,len(nums)):
if nums[i] == nums[j]:
count+=1
ind = nums[i]
index_dict[ind] = count
for k in nums:
if index_dict[k] >= (len(nums)//2):
return k
구현시 알게된 것
1. dictionary에 값을 저장할 때 append로 저장하였더니, 오류가 났다. append는 list를 저장할 때 쓰도록 하자!
2. 반복문 사용시 처음에 for i in len(nums)라고 하였더니, 반복문이 error가 났다.
for i in range(0,len(nums))로 수정하였더니 해결!
짝의 풀이
def more_than_half(nums):
count = {}
for number in nums:
try: count[number] += 1
except: count[number] = 1
count_list = sorted(count, key=lambda x : count[x], reverse = True)
return count_list[0]
구현시 알게된 것
1. 1이라는 key가 또 나오면, 1의 value가 1씩 더해지게 되는 원리.
2. sorted 메소드의 옵션인 lambda함수의 기능
count_list = sorted(count, key=lambda x : count[x], reverse = True)
'PYTHON' 카테고리의 다른 글
TIL | PYTHON_DJANGO_logIn 과정 (0) | 2021.09.07 |
---|---|
TIL | PYTHON_Session_로그인 & 회원가입 (0) | 2021.08.25 |
TIL 42 | PYTHON_git_hub_repository_clone (0) | 2021.08.19 |
TIL 41 | PYTHON_Coding Convention (0) | 2021.08.19 |
TIL 40 | PYTHON_Django_ManyToManyField의 역할 (0) | 2021.08.18 |
reply