최빈값 구하기 (programmers Lv0)

송성원·2024년 1월 7일
1

programmers

목록 보기
8/9
post-thumbnail

최빈값 구하기

우선 이문제를 보고는 count함수를 사용해서 전체 array와 다른 list한개를 만들어서 list.append(array.count(i))라고 for문을 통해서 반복을 돌려 추가한다음 그 list에서 최댓값을 구하려고 생각을 하고 코드를 짜보았는데 if문인 조건을 적는 방법이 여기치 않아 방법을 바꾸어 풀게 되었다.

내가 푼 방법


def solution(array):
    answer = 0
    max_count = 0
    set_array = set(array)
    
	# array를 써도 되지 않나요? => 안됩니다. 3이 두개면 3을 두번사용... 
    for i in set_array:
        count = array.count(i)
        if max_count < count:
            max_count = count
            answer = i
        elif max_count == count:
            answer = -1
    return answer
  1. answer(count안의 수), max_count(최대로 count되는 수)
  2. max_count == count 같게 된다면 결국 1이 두번되었고 2가 두번되었다면
    -1이 출력되야되기에 결국 저 elif문을 입력

타인이 푼 방법


def solution(array):
    while len(array) != 0:
        for i, a in enumerate(set(array)):
            array.remove(a)
        if i == 0: return a
    return -1

이코드는 이해하기가 어려울 수 있기에 풀이는 밑에 링크를 보고 이해하시면 좋습니다, 설명이 잘되있습니다.

https://dduniverse.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%B5%9C%EB%B9%88%EA%B0%92-%EA%B5%AC%ED%95%98%EA%B8%B0-%ED%8C%8C%EC%9D%B4%EC%8D%AC-Python

profile
개발에 도전하는 문과생입니다.

0개의 댓글