티스토리 뷰

본 글의 내용은 절대적으로 좋은 코드라는 보장이 없습니다. 글을 읽어보시다가 "이 사람은 이런 식으로 짰구나. 되게 허접하게 짰네?" 라는 생각이 드시면 댓글을 통해서 좋은 가르침과 의견을 주시면 감사합니다!!


https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7IzvG6EksDFAXB&categoryId=AV7IzvG6EksDFAXB&categoryType=CODE&&&

 

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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함