백준 1182 부분수열의 합

9095 문제와 같이 순열과 조합을 이용하는 문제입니다.

아이디어는 다음과 같습니다.

  1. 입력 받은 정수들을 list에 저장합니다.
  2. 이 들의 조합을 구합니다. 1부터 n까지 구합니다. ex( 5C1 - 5C5 )
  3. 이 들의 조합의 결과들 중 s와 sum이 같다면 count를 증가 시킵니다.
import itertools

n, s = map(int, input().split())
array = [int(i) for i in input().split()]

count = 0 
for i in range(1,n+1): # 1~n까지
    temp = list(itertools.combinations(array,i))
    for i in temp:
        if( sum(i) == s ): # 부분 수열의 값이 s와 같다면
            count+=1
print(count)


틀린이유 : 없음

좋은 웹페이지 즐겨찾기