SWEA (SW Expert Academy)/D3
[SWEA/D3] 5948 새샘이의 7-3-5 게임 / 백트래킹
hellosonic
2023. 5. 7. 23:47
문제 바로가기
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
나의 코드 및 설명
- 백트래킹을 통해 문제를 풀이하였다.
- 종료 조건에 도달하면, 함수의 temp_list 변수에 저장된 요소들의 합을 메인 함수의 result 리스트에 추가하고 리턴한다.
- set()을 통해 중복을 제거하고 sort()를 통해 정렬함으로써 5번째로 큰 값을 찾아 출력했다.
def dfs(count, start, temp_list):
if count == 3:
result.append(sum(temp_list))
return
for i in range(start, 7):
dfs(count+1, i+1, temp_list + [num_list[i]])
t = int(input())
for test_case in range(1,t+1):
num_list = list(map(int, input().split()))
result = []
dfs(0,0,[])
result.sort(reverse=True)
ans_list = list(set(result))
print("#{} {}".format(test_case, ans_list[4]))