본문 바로가기

Coding test

[백준/1182/파이썬] 부분수열의 합


소스코드

from itertools import combinations 

N,S = map(int,input().split())
seq = list(map(int,input().split()))
result = []
cnt = 0
for i in range(len(seq)+1):
  result = result+list(combinations(seq,i))  
del result[0]

for i in result:
  if (sum(i)) == S:
    cnt += 1
print(cnt)

알고리즘

  1. 파이썬의 itertools에 있는 combinations를 이용하여 부분 순열을 구한다.
  2. 공집합은 제거한다
  3. 합이 S인 개수를 구한다.

기본적인 문제라 시시했다.