PYTHON
[프로그래머스] 코딩테스트 입문 최빈값 구하기
SomeWhere_42
2024. 7. 23. 19:56
프로그래머스 입문
리스트를 새로 만들고 그안에 빈도 값을 세어 추가한다.
array 배열의 [0] 부터 array배열의 길이만큼 반복한다.
리스트이름.count(n) : n값이 리스트 안에 몇번 들어있는지 알려주는 코드
겹치는 최빈값이 없다면 최빈값 리스트안에는 1개의 값만 들어있을 것이다.
그렇지 않다면 -1을 출력하는 코드를 작성
나의 풀이
def solution(array):
from collections import Counter
count = Counter(array)
max_freq = max(count.values())
modes = [k for k, v in count.items() if v == max_freq]
if len(modes) > 1:
return -1
return modes[0]
비슷한 다른사람의 풀이
def solution(array):
answer = 0
value = []
count = []
for i in range(len(array)):
if array[i] not in value:
value.append(array[i])
for i in range(len(value)):
count.append(array.count(value[i]))
if count.count(max(count)) != 1:
answer = -1
else: answer = value[count.index(max(count))]
return answer
비슷한 다른사람의 풀이2
def solution(array):
answer = 0
value = []
count = []
for i in range(len(array)):
if array[i] not in value:
value.append(array[i])
for i in range(len(value)):
count.append(array.count(value[i]))
if count.count(max(count)) != 1:
answer = -1
else: answer = value[count.index(max(count))]
return answer