https://school.programmers.co.kr/learn/courses/30/lessons/120812
def solution(array):
num = set(array)
answer = [0] * (max(array) + 1)
for i in num:
answer[i] = array.count(i)
if answer.count(max(answer)) > 1:
return int(-1)
return int(answer.index(max(answer)))
이게 lv0이 맞나 싶었다. 쉽다고 생각했는데 구현하는 것이 생각보다 어려웠다.
작성한 코드도 정확도가 70%라서 완벽한 코드는 아니고, 다시 생각해보겠다.
우선 로직은
1. 입력받은 수들이 담겨있는 배열의 중복값을 제거해준다.
2. 입력받는 숫자들의 개수 + 1 만큼 0의 배열을 만들어준다.
3. 중복값을 제거한 배열의 원소를 차례대로 기존의 배열에서 개수를 찾아준다.
4. 0으로 초기화 한 배열의 인덱스에 해당하는 숫자의 개수를 넣어준다.
5. 최대값이 2개 부터면 -1를 출력해주고 그렇지 않으면 최빈값을 반환해준다.
다른사람들의 풀이가 많지않다.. lv0이라 그런지 사람들이 아직 많이안푸는것같은데... 은근 어렵네요 요로분,,