For Programmer
SWEA 1486번 파이썬 문제풀이(장훈이의 높은 선반) 본문
728x90
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV2b7Yf6ABcBBASw
간단한 DFS 문제이다. 주석으로 설명해놨다.
T = int(input())
# 조합 dfs 이용
def dfs(depth, start, height):
global max_
# 1개이상 N개 이하로 뽑은 경우
if 0 < depth <= N:
if height >= B: # 뽑은 키의 합이 선반의 높이보다 크거나 같으면
if height >= max_: # 저장되어있는 최댓값보다 크거나 같다면
return # 재귀 종료
max_ = height # 작다면 해당 키를 저장
return
if depth == N: # N개까지 뽑았다면 dfs종료
return
for i in range(start, N):
dfs(depth + 1, i + 1, height + info[i])
for tc in range(1, T + 1):
N, B = map(int, input().split())
info = list(map(int, input().split()))
max_ = 1 << 60 # B보단 크거나 같으면서 그 중 최소의 점원의 키의 합
dfs(0, 0, 0)
print(f'#{tc} {max_ - B}')
728x90
'코팅테스트 > 백준 문제 모음' 카테고리의 다른 글
SWEA 5688번 파이썬 문제풀이(세제곱근을 찾아라) (0) | 2022.03.18 |
---|---|
SWEA 4012번 파이썬 문제풀이(요리사) (0) | 2022.03.18 |
SWEA 1953번 파이썬 문제풀이(탈주범 검거) (0) | 2022.03.18 |
SWEA 1861번 파이썬 문제풀이(정사각형 방) (0) | 2022.03.18 |
SWEA 1238번 파이썬 문제풀이(Contact) (0) | 2022.03.17 |
Comments