프로그래머스_Lv0_최빈 값 구하기_파이썬

Today Jeeho Learned·2022년 10월 6일
0

알고리즘

목록 보기
19/38
post-thumbnail

- 문제 출처

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이라 그런지 사람들이 아직 많이안푸는것같은데... 은근 어렵네요 요로분,,

profile
기록해야 (살아)남는다 !

0개의 댓글