https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV2b7Yf6ABcBBASw
아이디어
- 간단한 문제이다.
- 모든 직원들의 키를 더한 순열을 만들어 그 중 B이상인 것 중 가장 작은 값을 출력한다.
풀이
for tc in range(int(input())):
N, B = map(int, input().split())
H = list(map(int, input().split()))
# 모든 탑의 길이를 담을 리스트
sums_lst = [0]
for i in range(N):
# 현재 키에서 모든 탑의 길이를 담은 리스트를 다 더해주고 추가
for j in range(len(sums_lst)):
val = H[i] + sums_lst[j]
sums_lst.append(val)
# B를 넘지 않는 가장 큰 값
print(f'#{tc+1}', min([x-B for x in sums_lst if x-B >= 0]))
'SWEA' 카테고리의 다른 글
SWEA 2105 디저트 카페 (파이썬) (1) | 2022.09.24 |
---|---|
SWEA 2819 격자판의 숫자 이어 붙이기 (파이썬) (0) | 2022.09.23 |
SWEA 4366 정식이의 은행업무 (파이썬) (0) | 2022.09.23 |
SWEA 2117 홈 방범 서비스 (파이썬) (0) | 2022.09.16 |
SWEA 1861 정사각형 방 (파이썬) (0) | 2022.09.16 |