0과 1의 배열 A가 있다고 가정하고 N[i]가 이진수로 해석되는 인덱스 A[0]에서 A[i]까지의 i번째 하위 배열이라고 가정합니다. N[i]가 5로 나누어 떨어지는 경우에만 대답[i]가 참인 부울 답변 목록을 찾아야 합니다.
따라서 입력이 [0,1,1,1,1,1]과 같으면 출력은 [true,false,false,false,true,false]
가 됩니다.이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- 길이 :=A의 크기
- ans:=크기 길이의 배열을 만들고 false로 채우기
- 숫자:=A의 각 요소를 연결하여 이진 값
- 0부터 길이까지의 범위에 있는 i에 대해
- 숫자 모드 5가 0과 같으면
- ans[length-i-1] :=참
- 숫자:=숫자 / 2
- 숫자 모드 5가 0과 같으면
- 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution: def prefixesDivBy5(self, A): length=len(A) ans=[False]*length number=int("".join(map(str,A)),2) for i in range(length): if number%5==0: ans[length-i-1]=True number=number>>1 return ans ob = Solution() print(ob.prefixesDivBy5([0,1,1,1,1,1]))
입력
[0,1,1,1,1,1]
출력
[True, False, False, False, True, False]