KEEP GOING
[python] SWEA : 장훈이의 높은 선반 (backtracking) 본문
반응형
1. dfs 사용
# B 이상인 height 중에서 가장 작은 height 구하기
def backtracking(N, B, height, idx):
global result
# 마지막 원소까지 더해버렸다면
if idx >= N:
# 선반의 높이 이상이고 최소값보다 작을때 갱신
if B <= height < result:
result = height
return
visited[idx] = True
backtracking(N, B, employees[idx]+height, idx+1)
visited[idx] = False
backtracking(N, B, height, idx+1)
for tc in range(1, int(input())+1):
result = 1e9
n, b = map(int, input().split())
# 직원들의 키
employees = list(map(int, input().split()))
# 방문처리
visited = [False for _ in range(n)]
backtracking(n, b, 0, 0)
print(f'#{tc} {result-b}')
반응형
'code review > bfs-dfs' 카테고리의 다른 글
[python] 백준 11724번 : 연결 요소의 개수 (BFS, union&find) (0) | 2022.02.25 |
---|---|
[python] DFS/BFS 정리 (0) | 2022.02.25 |
[python] SWEA 1249 : 보급로 (dijkstra, BFS) (0) | 2022.02.23 |
[python] SWEA 5247 : 연산 (BFS) (0) | 2022.02.14 |
[python] 백준 16234 : 인구이동 (BFS) (0) | 2022.01.19 |
Comments