[Codility] Dominator

snusun·2021년 11월 27일
0

Codility

목록 보기
8/13

1차 시도

import math

def solution(A):
    # write your code in Python 3.6
    if not A:
        return -1
    if len(A) == 1 or len(A) == 2:
        return 0
    h = math.ceil(len(A)/2)
    B = sorted(A)
    s = 1
    do = B[0]
    #print(B)
    for i in range(1, len(B)):
        #print(B[i])
        if s==1 and i==h+2:
            return -1
        if do == B[i]:
            s+=1
        else:
            do = B[i]
            s=1
        #print(s)
        if s>=h:
            return A.index(do)

    return -1
    #pass


시간은 통과하는데 정확도에서 나가리..

2차 시도

def solution(A):
    
    check = {}
    for a in A:
        if not a in check:
            check[a] = 1
        else :
            check[a] += 1

    m = float("-inf")
    for k,v in check.items():
        if m < v:
            m = v
            i = k
    
    if m > len(A)/2:
        return A.index(i)
    else :
        return -1

배열을 만드려고 했는데 dictionary를 만들면 되는구나..! 큰 깨달음 💯

profile
대학생 근데 이제 컴공을 곁들인

0개의 댓글