SWEA(Python) 풀이/D3

SWEA[D3] (Python) 2817번 부분 수열의 합 풀이

개발윗미 2022. 5. 26. 12:58

Python으로 구현한 2817번 부분 수열의 합 문제 풀이입니다.

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AV7IzvG6EksDFAXB&categoryId=AV7IzvG6EksDFAXB&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=PYTHON&select-1=3&pageSize=10&pageIndex=8 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


from itertools import combinations

t = int(input())
for tc in range(1, t + 1) :
    n, k = map(int, input().split())
    data = list(map(int, input().split()))
    result = 0
    for i in range(1, len(data) + 1) :
        for value in combinations(data, i) :
            if sum(value) == k :
                result += 1

    print('#%d %d' % (tc, result))

 

1. 각 테스트 케이스마다 n개의 수를 입력받아 data 리스트에 저장한다.

 

2. itertools.combinations() 를 통해 data 리스트의 요소를 i개씩 뽑고, 뽑은 값들의 합이 k와 같을 경우 result를 1 증가시킨다.

 

3. 최종적으로 해당 테스트 케이스 번호와 함께 result 값을 출력한다.