티스토리 뷰
본 글의 내용은 절대적으로 좋은 코드라는 보장이 없습니다. 글을 읽어보시다가 "이 사람은 이런 식으로 짰구나. 되게 허접하게 짰네?" 라는 생각이 드시면 댓글을 통해서 좋은 가르침과 의견을 주시면 감사합니다!!
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
기본 아이디어
- 부분집합의 조합으로 나올 수 있는 합의 경우의 수를 구하고 그 합이 원하는 합과 동일할 경우 count를 늘려주는 방식
import sys
sys.stdin = open('input.txt', 'r')
T = int(input())
for tc in range(T):
N, K = map(int, input().split())
nums = list(map(int, input().split()))
allSum = sum(nums)
sums = []
count = 0
for num in nums:
lenSums = len(sums)
sums.append(num)
if num == K:
count += 1
for s in range(lenSums):
newSum = sums[s] + num
if newSum < K:
sums.append(newSum)
elif newSum == K:
count += 1
print('#{} {}'.format(tc+1, count))
반응형
'알고리즘 문제 풀이 > SWEA' 카테고리의 다른 글
[파이썬] SWEA 5644 무선충전 (0) | 2021.03.19 |
---|---|
[Python] SWEA 5656 벽돌깨기 (0) | 2021.03.18 |
[Python] SWEA 2117 홈 방범 서비스 (0) | 2021.03.18 |
2806. N-Queen (1) | 2020.11.01 |
댓글