0623 TIL

고수진·2021년 6월 23일

휴 알고리즘..
평범한 배낭 - 냅색 알고리즘 dp로 해결 가능
냅색 알고리즘은 담을 수 있는 물건이 나눌 수 있냐 없냐에 따라 나눈다.
담번에는 분할 배낭 문제 풀어보기!
참고

n과m2

n, m = map(int, input().split())
arr = []

def dfs(t):
    if len(arr) == m:
        print(*arr)
        return
    for i in range(t, n+1):
        arr.append(i)
        dfs(i+1)
        arr.pop()

dfs(1)

함수 내에서 for문과 재귀함수의 사용법을 이해하자. pop의 활용도.
재귀호출 끝난 후 다음줄 코드진행 흐름 익히기

nqueen
대각선 좌우 겹치지 않게 배치하는 경우의 수

오른쪽 방향 대각선 : x - y 결과값이 같다면 같은 오른쪽 대각선 상
왼쪽 대각선 : x + y 결과값이 같다면 같은 왼쪽 대각선 상
같은 행 : 같은 x값
같은 열 : 같은 y값

열, 좌대각선, 우대각선 3개의 배열만 만들면 됨

profile
수진고

0개의 댓글