바이너리 그리드 안에 숫자를 배치하는 기능을 만드는 데 문제가 있습니다. 예를 들어, 는 내가 4 3 2 1 주어, 나는 5 × 5 인 그리드가있어 경우, 그것은2D 바이너리 목록 파이썬
4 4 4 4 1
4 4 4 4 0
4 4 4 4 0
4 4 4 4 0
0 0 0 0 0
내 현재 코드는 텍스트 파일을 읽고 목록을 만듭니다 ... 다음과 같을 것이다 그것은 내림차순으로 정렬됩니다. 예를 들어 텍스트 파일에 1 2 3이 있으면 정수 목록을 생성합니다. 3 2 1 또한 binxbin 사각형을 만드는 bin #에 대한 프롬프트가 나옵니다. 나는 빈에 실제로 4 번 자리에 앉는 법을 모른다. 이것은 내가 붙어있는 값에 위치해야하는 함수입니다. 당신이 원산지 원산지 (row, column)
및 크기 block
과 정사각형을 만들 수 있다면 isSpaceFree
가 경계의 외출 또는 0이 아닌 요소를 중복하지 않고, True
을 반환해야처럼
def isSpaceFree(bin, row, column, block):
if row + block > len(bin):
return False
if column + block > len(bin):
return False
if bin[row][column] == 0 :
return True
else:
return False
for r in range(row, row+block):
if bin[row][column] != 0:
이 바이너리 목록입니다? 나는 혼란 스럽다. 네 광장에 무엇을 넣고 싶니? 숫자 '4'? – Brionius
그래서 숫자 4가 목록의 첫 번째 숫자이면 4x4 블록을 만듭니다. 원래 목록에는 5x5 저장소에 0이 포함되어 있습니다. 4가 0을 대체합니다. 그리고 다시 3과 2와 1을 확인하기 위해 위로부터 시작할 것입니다. – steve
저는 매우 혼란 스럽습니다. 어떤 의미에서'4 3 2 1','1 2 3' 또는'3 2 1'은 5x5 격자를 채우는 것과 관련이 있습니까? 항상 5x5 격자입니까? –