음이 아닌 정수의 목록이 균형 을 이루는 지 확인하기 위해 보드에 각 가중치를 적용한 다음 피벗의 왼쪽과 오른쪽에 요약 된 상대적 가중치가 동일하도록 피벗 에서 보드의 균형을 맞추는 것을 상상할 수 있습니다 . 상대적 무게는 무게와 피벗까지의 거리를 곱하여 주어집니다 ( 레버 법칙 참조 ).
(출처 : wikipedia )
이 이미지는 목록에 해당합니다 [100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5]
. 이 목록은 5
피벗과의 거리가 20 이므로100
, 거리가 1 및5*20 = 100 = 100*1
됩니다.
예
3 1 5 7
#########
^
이 경우에는 요동이 바로 아래 5
의이 3
거리 (2)을 가지며 1
및 7
양측 좌우 요동 합 닫하도록 거리가 1 7
( 3*2 + 1*1
왼쪽과7*1
오른쪽 마우스) 따라서리스트 [3, 1, 5, 7]
균형.
그러나 피벗을 목록 요소 중 하나에 배치 할 필요는 없지만 두 목록 요소 사이에 배치 할 수도 있습니다.
6 3 1
#######
^
이 경우 거리는 0.5, 1.5, 2.5, ...
등이됩니다. 이 목록도 균형을 이룹니다 6*0.5 = 3 = 3*0.5 + 1*1.5
.
피벗은 정확히 한 숫자 아래 또는 두 숫자 사이의 가운데에만 배치 할 수 있습니다 사이의 2/3에는 없습니다 .
태스크
출력 어떤 적당한 형식으로 음이 아닌 정수의리스트에 근거 truthy
값리스트가 될 수 있는지 균형 과 falsy
달리 값.
입력 목록에 둘 이상의 요소가 있고 하나 이상의 요소가 0이 아닌 것으로 가정 할 수 있습니다.
이것은 코드 골프 도전이므로 각 언어에서 가장 적은 바이트 수의 응답이 이깁니다.
진실한 테스트 케이스
[1, 0]
[3, 1, 5, 7]
[6, 3, 1]
[100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5]
[10, 4, 3, 0, 2, 0, 5]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[7, 7, 7, 7]
거짓 테스트 케이스
[1, 2]
[3, 6, 5, 1, 12]
[0, 0, 2, 0, 1, 0]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[6, 3, 2, 4, 0, 1, 2, 3]
[4, 0, 0, 2, 3, 5, 2, 0, 1, 2, 3, 0, 0, 1, 2, 4, 3, 1, 3, 0, 0, 2]
[100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5]
이 문제가 샌드 박스 로 처리되는 동안 발견 된 많은 관련 문제 : 균형이 맞습니까? , 시퀀스의 평형 지수 , 균형 시소에 일련의 무게는 , 단어를 균형 , 나는 뒤집어 것인가? 그리고 어디에서 피벗 소속입니까?
You can assume that the input list contains at least two elements and that at least one element is non-zero.