최소한의 절단으로 벽돌 벽을 부수는 방법

annie2020

나는 배우는 동안이 질문을 보았고 그것을 해결할 수 없습니다. 문제-서로 다른 크기의 벽이 bricks나중에 각각 쌓인 매트릭스 표현이 주어졌습니다 . 위에서 아래로 절단 할 최소 절단을 어떻게 알 수 있습니까? (가능한 한 조인트 라인을 활용한다는 것을 의미하는 최소한의 노력)

예-[[3,5,1,1], [2,2,4,2], [4,4,2], [1,3,3,3], [1,1,6,1, 2]] 답 : 2. 관절에서 자르기가 더 쉽기 때문에. (이미지가 너무 커서 죄송합니다.)

나는 조언을 구하려는 시도를 게시했습니다.

def fewer_cut(walls):
    cut = 0

    for row in wall:
        length =0
        for brick in row:
            length = length+ brick
            cuts += 1

    
         
다니엘 하오

이것을 시도하고 알려주시겠습니까? 설명 : 이 문제를 다른 관점에서 생각하면 각 컷 이 다른 레이어 more joints사이 two bricks어떻게 통과 할 수 있습니까? 그러면 해결책을 찾는 것이 더 쉽습니다.

우리는 벽의 각 행을 반복하고 마지막 행을 제외하고 각 행 (지금까지) 이후에 포함 된 누적 거리에 대해 맵 테이블의 개수를 증가 시키려고합니다. 가장 큰 값을 가진 맵의 키는 가장 적은 컷이있는 수직선입니다. 그런 다음 전체 벽 크기에서이 값을 빼고 최종 답을 얻을 수 있습니다. 실행 시간은 O(n)우리가 벽을 한 번만 횡단하기 때문입니다.

from collections import defaultdict

def fewer_cut(walls):
     ''' minimum cut of layers of walls '''
    N = len(walls) + 1    # offset 1
    
    cuts = defaultdict(int)

    for row in walls:
        length = 0

        for brick in row[:-1]:
            length += brick
            cuts[length] += 1
            
    #print(cuts)                        # comment out later.
    
    return N - max(cuts.values())
        

if __name__ == '__main__':
    walls = [[3, 5, 1, 1],
             [2, 2, 4, 2],
             [4, 4, 2, 2],
             [1, 3, 3, 2],
             [1, 1, 6, 1, 1,]]
    print(fewer_cut(walls))
    
     

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

벽돌-항목을 섞는 방법

분류에서Dev

무한 스크롤 + 모든 항목을로드하는 벽돌

분류에서Dev

R에서 MATLAB 목록을 래스터 벽돌로 변경하는 방법

분류에서Dev

WordPress의 벽돌

분류에서Dev

MPI의 장벽 : 프로세스가 서로를 기다리도록 장벽을 구현하는 방법

분류에서Dev

CSS 전체적으로 완벽한 사각형을 구성하도록 div 요소 라인업을 완벽하게 만드는 방법은 무엇입니까?

분류에서Dev

HTML Canvas로 픽셀 단위의 완벽한 클리핑 영역을 만드는 방법은 무엇입니까?

분류에서Dev

선형 그라디언트로 완벽한 대각선을 그리는 방법

분류에서Dev

벽돌의 틈새를 제거하는 방법은 무엇입니까?

분류에서Dev

캔버스 너비에 비례하는 임의의 너비로 벽돌 행을 만들려고합니다.

분류에서Dev

자바 미로 게임-벽을 통과하지 않는 방법

분류에서Dev

VPN을 통한 SMTP 연결을 갑자기 차단하는 Windows 방화벽

분류에서Dev

Windows-Ubuntu간에 완벽한 이중 부팅을 설치하는 방법

분류에서Dev

세 개의 div로 완벽한 육각형을 그리는 방법은 무엇입니까?

분류에서Dev

웹 페이지의 완벽한 로컬 사본을 얻는 방법은 무엇입니까?

분류에서Dev

Windows Defender 방화벽이 Android Studio의 일부 기능을 차단했습니다.

분류에서Dev

내 벽을 나열하는 방법 [Screeps]

분류에서Dev

내 서버에서 한 IP로 Windows 방화벽의 다른 IP 주소로 트래픽을 리디렉션하는 방법

분류에서Dev

libgdx에서 충돌과 공을 사용하여 무작위 및 무한 벽을 만드는 방법은 무엇입니까?

분류에서Dev

np.random.power 함수에서 완벽한 맞춤을 얻는 방법

분류에서Dev

그래프가 파이썬에서 두 부분으로 나뉘 지 않은 경우 최소 가중치 완벽한 일치를 찾는 방법

분류에서Dev

FreeBsd에서 Mac 주소를 기반으로 차단하는 방법은 무엇입니까? (ipfw 방화벽)

분류에서Dev

방화벽을 구성하는 symfony2-로그인시 이상한 동작

분류에서Dev

벽돌에 요소 추가

분류에서Dev

Windows 방화벽이 열린 웹 소켓을 차단합니까?

분류에서Dev

C / Linux : 실행 시간을 최소화하기 위해 사용할 완벽한 스레드 수를 찾는 방법은 무엇입니까?

분류에서Dev

파이 게임으로 벽돌 깨기 게임에서 패들에 부딪 힐 때마다 속도를 높이는 방법

분류에서Dev

창으로 크기가 조정되지 않는 벽돌

분류에서Dev

woocommerce의 벽돌이 작동하지 않는 무한 스크롤

Related 관련 기사

  1. 1

    벽돌-항목을 섞는 방법

  2. 2

    무한 스크롤 + 모든 항목을로드하는 벽돌

  3. 3

    R에서 MATLAB 목록을 래스터 벽돌로 변경하는 방법

  4. 4

    WordPress의 벽돌

  5. 5

    MPI의 장벽 : 프로세스가 서로를 기다리도록 장벽을 구현하는 방법

  6. 6

    CSS 전체적으로 완벽한 사각형을 구성하도록 div 요소 라인업을 완벽하게 만드는 방법은 무엇입니까?

  7. 7

    HTML Canvas로 픽셀 단위의 완벽한 클리핑 영역을 만드는 방법은 무엇입니까?

  8. 8

    선형 그라디언트로 완벽한 대각선을 그리는 방법

  9. 9

    벽돌의 틈새를 제거하는 방법은 무엇입니까?

  10. 10

    캔버스 너비에 비례하는 임의의 너비로 벽돌 행을 만들려고합니다.

  11. 11

    자바 미로 게임-벽을 통과하지 않는 방법

  12. 12

    VPN을 통한 SMTP 연결을 갑자기 차단하는 Windows 방화벽

  13. 13

    Windows-Ubuntu간에 완벽한 이중 부팅을 설치하는 방법

  14. 14

    세 개의 div로 완벽한 육각형을 그리는 방법은 무엇입니까?

  15. 15

    웹 페이지의 완벽한 로컬 사본을 얻는 방법은 무엇입니까?

  16. 16

    Windows Defender 방화벽이 Android Studio의 일부 기능을 차단했습니다.

  17. 17

    내 벽을 나열하는 방법 [Screeps]

  18. 18

    내 서버에서 한 IP로 Windows 방화벽의 다른 IP 주소로 트래픽을 리디렉션하는 방법

  19. 19

    libgdx에서 충돌과 공을 사용하여 무작위 및 무한 벽을 만드는 방법은 무엇입니까?

  20. 20

    np.random.power 함수에서 완벽한 맞춤을 얻는 방법

  21. 21

    그래프가 파이썬에서 두 부분으로 나뉘 지 않은 경우 최소 가중치 완벽한 일치를 찾는 방법

  22. 22

    FreeBsd에서 Mac 주소를 기반으로 차단하는 방법은 무엇입니까? (ipfw 방화벽)

  23. 23

    방화벽을 구성하는 symfony2-로그인시 이상한 동작

  24. 24

    벽돌에 요소 추가

  25. 25

    Windows 방화벽이 열린 웹 소켓을 차단합니까?

  26. 26

    C / Linux : 실행 시간을 최소화하기 위해 사용할 완벽한 스레드 수를 찾는 방법은 무엇입니까?

  27. 27

    파이 게임으로 벽돌 깨기 게임에서 패들에 부딪 힐 때마다 속도를 높이는 방법

  28. 28

    창으로 크기가 조정되지 않는 벽돌

  29. 29

    woocommerce의 벽돌이 작동하지 않는 무한 스크롤

뜨겁다태그

보관