728x90
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
풀고보니 파이썬 제출이 없어서 채점을 진행하지 못한 문제
DFS로 길이가 2개인 부분집합을 생성해서 합을 비교해서 answer을 도출하는 방식으로 풀었다.
가지치기를 안해서 아마 시간초과가 날 가능성이 높다.
T = int(input())
def DFS(L, s, k):
global answer
if L == n:
return
else:
if k==2:
if m >= s:
if answer <= s:
answer = s
DFS(L+1, s+arr[L], k+1)
DFS(L+1, s, k)
for _ in range(T):
n, m = map(int, input().split())
arr = list(map(int, input().split()))
answer = -1
DFS(0, 0, 0)
print(f'#{_+1} {answer}')
완성
SWEA 문제 너무 좋다.
728x90
'알고리즘' 카테고리의 다른 글
| [SWEA] 백만 장자 프로젝트 - python (0) | 2024.05.13 |
|---|---|
| [SWEA] 최대 상금 - python (0) | 2024.05.13 |
| [백준] 15988번: 1, 2, 3 더하기 3 - python (0) | 2024.05.07 |
| [백준] 10026번: 적록색약 - python (0) | 2024.05.07 |
| [백준] 2252번: 줄 세우기 - python (0) | 2024.05.07 |