파이썬으로 내가 짠 코드


def solution(A): peak=[] for i in range(1,len(A)-1): if A[i-1]and A[i]>A[i+1]: peak.append(i) klist = [] for i in range(1,int(len(A)/2)+1): if not len(A)%i: klist.append(i) index = -1 while True: try: if klist[index]<=len(peak): k = klist[index] break else: index-=1 except: return 0 k = klist[index] if k == 1 or k == 0: return k while True: check = 0 divide = int(len(A)/k) if check == peak[0]//divide: for j in peak: if check == j//divide or check == j//divide-1: check = j//divide else: index -=1 k = klist[index] if k == 1 or k == 0: return k if check+1 == k: return k else: index -=1 k = klist[index]





A 는 1에서1,000,000,000 까지의 정수를 요소로 가지는 리스트

A 의 길이는 1에서 100,000까지



peak 의 정의는 이웃 2개의 수보다 자기가 큰 요소

A 를 같은 크기의 slice로 나누는데

각 slice안에 반드시 하나이상의 peak이 들어있는




최대의 slice 갯수를 return해야함


과제 아니고 안지우니까 내 코드 봐주거나 직접 짜서 풀어보셈


내 코드는 틀렸다고 나옴