728x90
반응형
[문제]
배열 내 같은 값을 갖지 않는 연속된 수를 갖는 배열의 연속된 부분 집합을 구하는 문제
[코드]
시간복잡도 : 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 |