티스토리 뷰

알고리즘/BOJ

[BOJ-1182] 부분수열의 합

개발하는 후딘 2020. 3. 28. 13:54
728x90
반응형

https://www.acmicpc.net/problem/1182

 

1182번: 부분수열의 합

첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다.

www.acmicpc.net


[풀이]

backtracking을 이용해서 풀었다.


import sys
input=sys.stdin.readline

N,S=map(int, input().strip().split())
A=[*map(int,input().strip().split())]
A=sorted(A) #오름차순으로 정렬

result=0
def backtracking(n, s):
    global result, A
    if s==S:
        result+=1

    for i in range(n+1,N):
        backtracking(i, s+A[i])

for i in range(N):
    backtracking(i, A[i])

print(result)

728x90
반응형

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ-10159] 저울  (0) 2020.04.04
[BOJ-2589] 보물섬  (0) 2020.03.29
[BOJ-1261] 알고스팟  (0) 2020.03.27
[BOJ-16936] 나3곱2  (0) 2020.03.26
[BOJ-1946] 신입사원  (0) 2020.03.25
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 29 30 31
글 보관함