기타/Codility

[Easy] CountDistinctSlices - 70%

백곰곰 2022. 6. 8. 22:53
728x90
반응형

[문제]

배열 내 같은 값을 갖지 않는 연속된 수를 갖는 배열의 연속된 부분 집합을 구하는 문제

 

CountDistinctSlices coding task - Learn to Code - Codility

Count the number of distinct slices (containing only unique numbers).

app.codility.com

 

[코드]

시간복잡도 : O(N * (N+M))

def solution(M, A):
    # write your code in Python 3.6
    listA = []
    answer=0
    for a in A:
        if a in listA:
            idx = listA.index(a)
            answer=answer + int((len(listA)*(len(listA)+1))/2)
            if(idx+1 < len(listA)) :
                listA = listA[idx+1:]
                answer = answer - int((len(listA)*(len(listA)+1))/2)
            else :
                listA = []
                
            listA.append(a)            
        else:
            listA.append(a)
    if listA :
        ## non empty
        answer = answer + int((len(listA)*(len(listA)+1))/2)
    return answer
728x90

'기타 > Codility' 카테고리의 다른 글

[Easy] MinPerimeterRectangle  (0) 2022.06.10
[Easy] FrogRiverOne  (0) 2022.06.09
[Easy] TapeEquilibrium  (0) 2022.06.08
[Easy] PermMissingElem  (0) 2022.06.07
[Easy] OddOccurencesInArray  (0) 2022.06.07