알고리즘/문제풀이
[Python] 백준 16938 캠프 준비
정찡이
2021. 9. 11. 21:35
728x90
1. 문제 링크
https://www.acmicpc.net/problem/16938
16938번: 캠프 준비
난이도가 10, 30인 문제를 고르거나, 20, 30인 문제를 고르면 된다.
www.acmicpc.net
2. 문제 요약
캠프에서 사용한 문제 방법의 수를 출력한다.

3. 아이디어 정리
조합을 이용해서 2~n개까지 문제를 뽑아서 조건에 맞으면 결과에 +1을 해준다.
4. 문제 풀이
4-1. 내 풀이
import sys
from itertools import combinations
# 문제 수, 난이도 합 l크거나 같고, r보다 작거나 같다, 난이도 차 x보다 크거나 같다
n, l, r, x = map(int, sys.stdin.readline().split())
arr = list(map(int, sys.stdin.readline().split()))
result = 0
for i in range(2, n + 1):
for comb in combinations(arr, i):
if l <= sum(comb) <= r:
if max(comb) - min(comb) >= x:
result += 1
print(result)
5. 결론
- 조합을 이용하면 쉽게 해결되는 문제
반응형