휴 알고리즘..
평범한 배낭 - 냅색 알고리즘 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개의 배열만 만들면 됨