-
https://www.acmicpc.net/problem/1182
1182번: 부분수열의 합
첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다.
www.acmicpc.net
https://github.com/JUNGSOONIL/JAVA/blob/main/BAEKJOON%201182
GitHub - JUNGSOONIL/JAVA: JAVA 소스 코드
JAVA 소스 코드. Contribute to JUNGSOONIL/JAVA development by creating an account on GitHub.
github.com
해당 문제는 수열이 주어졌을 때 부분 수열의 합이 S 값이 되는 경우의 개수를 출력하는 문제다.
최근에 부분집합을 이용해
문제를 풀었던 적이 있었는데, 그때 부분집합은 잘 안 쓰다 보니 기억이 잘 아나서
코드를 찾아보고 문제를 해결했던 적이 있어서, 다시 좀 봐야겠다 생각했는데
해당 문제가 부분집합으로 풀릴 거 같아서 부분집합으로 해결했다.
문제에서 크기가 양수인 부분 수열 중이라고 알려주기 때문에 공집합에 대해선
체크를 해줄 필요가 없다.
근데 생각해 보니 그냥 다 체크해 주고 만약에 S 값이 0인 경우에만
ans 초깃값을 -1로 두어 문제를 풀었다.
728x90'알고리즘 > Baekjoon' 카테고리의 다른 글
Baekjoon 1309 동물원 JAVA (0) 2021.11.15 Baekjoon 5052 전화번호 목록 JAVA (0) 2021.11.15 Baekjoon 17471 게리맨더링 JAVA (0) 2021.11.15 Baekjoon 2580,2239 스도쿠 JAVA (0) 2021.11.14 Baekjoon 1240 노드사이의 거리 JAVA (0) 2021.11.14 댓글