코딩테스트 입문 - 최빈값 구하기

wonjun.Aden·2023년 1월 16일
0

코딩테스트 연습 > 코딩테스트 입문 > 최빈값 구하기

쉽게 생각했다. 실제로 그냥 워밍업으로만 생각하고 문제를 풀어나갔다.
쉬울 줄 알았으니까
거만함이 하늘에 차 있었다.
너무나도 당황스러웠다.
2시간이 걸렸다.
어이가 없었다.
하지만 당황하지 않고... 아이패드를 켜고 다시 생각을 정리하며 set을 이용하고 이차원배열을 이용해 문제를 풀었다...
쉽지 않았다...

문제

문제 풀이는 생각해보면 뭐 없다.
Array [1, 2, 3, 3, 3, 4] -> Set(Array) [1, 2, 3, 4] -> 개수 세기 [[1, 1], [2, 1], [3, 3], [4, 1]] -> 개수 많은 순대로 정렬하기 [[3, 3], [1, 1], [2, 1], [4, 1]] -> 정렬한 리스트를 통하여 리스트가 1개이면 1개의 값 출력 // 리스트가 2개이상이고 리스트 2개의 값이 같으면 -1 // 리스트 1,2번째가 다르면 맨 첫번째걸 출력해주는 것이다.

def solution(array):
    answerList=[]
    max_cnt=0
    n=0
    setList=list(set(array))
    
    for i in setList:
        if max_cnt < array.count(i):
            max_cnt = array.count(i)
        answerList.append([i,array.count(i)])
       
    print(answerList)
    answerList.sort(key=lambda x:-x[1])
    print(answerList)
    print(len(answerList))
    
    if len(answerList) < 2:
        return answerList[0][0]
    elif len(answerList) >= 1 and answerList[0][1] == answerList[1][1]:
        return -1
    elif answerList[0][1] != answerList[1][1]:
        return answerList[0][0]
    

쉽지 않은 입문이다;;

profile
아프리카의 BackEnd Developer 장원준입니다.

0개의 댓글