오뚝이개발자

target sum 부분집합 갯수 세기 본문

코딩 테스트/프로그래머스

target sum 부분집합 갯수 세기

땅어 2021. 1. 3. 17:49
728x90
300x250

 

nums=[1,2,1], target=3일 때, nums에서 원소의 합이 target인 부분집합은 몇 개일까?

답은 (1,2), (2,1)로 2개이다.

그렇다면 이를 구하기 위한 알고리즘은 무엇일까?

이러한 문제를 counting subsets with given sum이라 한다. 다른 문제에도 자주 이용되니 알아두자!

 

가능한 모든 경우를 파악해보면 된다. 그런데 이 때, 각 숫자는 합에 포함되거나 안되거나 둘 중 하나의 선택지를 갖는다. 그림으로 나타내면 아래와 같다.

 

이를 풀기 위해선 dp를 사용하면 된다.

 

위와 같이 dp를 모두 채운 뒤 dp[-1][-1]이 답이 된다.

 

관련 문제


leetcode.com/problems/target-sum/

 

Target Sum - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

728x90
300x250

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글

보석 쇼핑  (0) 2021.06.22
셔틀버스  (0) 2021.06.22
순위  (0) 2020.09.25
등굣길  (0) 2020.09.25
입국심사  (0) 2020.09.24
Comments