알고리즘/문제풀이

[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. 결론

  • 조합을 이용하면 쉽게 해결되는 문제
반응형