728x90
📃문제설명
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다.
정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요.
최빈값이 여러 개면 -1을 return 합니다.
📝제한사항
- 0 < array의 길이 < 100
- 0 ≤ array의 원소 < 1000
🪧입출력 예
array | result |
[1, 2, 3, 3, 3, 4] | 3 |
[1, 1, 2, 2] | -1 |
[1] | 1 |
입출력 예 #1
- [1, 2, 3, 3, 3, 4]에서 1은 1개 2는 1개 3은 3개 4는 1개로 최빈값은 3입니다.
입출력 예 #2
- [1, 1, 2, 2]에서 1은 2개 2는 2개로 최빈값이 1, 2입니다. 최빈값이 여러 개이므로 -1을 return 합니다.
입출력 예 #3
- [1]에는 1만 있으므로 최빈값은 1입니다.
💻코드
from collections import Counter
def solution(array):
cnt=Counter(array)
m_comm=cnt.most_common()
maximum=m_comm[0][1]
answer = []
for i in m_comm:
if i[1]==maximum:
answer.append(i[0])
if len(answer)>=2:
return -1
else:
return answer[0]
'''
def solution(array):
while len(array) != 0:
for i, a in enumerate(set(array)):
array.remove(a)
if i == 0: return a
return -1
'''
더보기
🧑💻공부
set 함수를 이용해서 array 속 리스트를 집합으로 만든다.
그리고 중복되지 않는 요소들에 인덱스값을 메기고
그 값으로 원본 리스트에 for문을 활용해 하나씩 지우다 보면
결국 중복되는 값 한개 혹은 0이 되어 버리는데 만약 리스트에 값이 남았다면
인덱스0번째에 해당하는 요소를 반환하게 되고,
만약 while문을 벗어나게 되는 리스트 안이 비어버리면 -1을 반환하게 된다.
728x90
'🐍python3 > Programmers' 카테고리의 다른 글
프로그래머스[코딩테스트 입문]_피자 나눠 먹기 (1) (0) | 2023.06.03 |
---|---|
프로그래머스[코딩테스트 입문]_짝수는 싫어요 (0) | 2023.06.03 |
프로그래머스[코딩테스트 입문]_중앙값 구하기 (0) | 2023.06.03 |
프로그래머스[코딩테스트 입문]_나머지 구하기 (0) | 2023.06.03 |
프로그래머스[코딩테스트 입문]_배열 두 배 만들기 (0) | 2023.06.03 |