파이썬으로 내가 짠 코드
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해야함
과제 아니고 안지우니까 내 코드 봐주거나 직접 짜서 풀어보셈
내 코드는 틀렸다고 나옴
해당 댓글은 삭제되었습니다.
신경과학 무슨책 어느저자가 그렇게 말함
해당 댓글은 삭제되었습니다.
https://app.codility.com/programmers/lessons/10-prime_and_composite_numbers/peaks/
codility 로그인 해야 할거임..