[코딩테스트][백준] 🔥 백준 16938번 "캠프 준비" 문제: Python으로 완벽 해결하기! 🔥

김상욱·2024년 9월 19일
0
post-thumbnail

문제 링크

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

🕒 Python 풀이시간: 15분

N,L,R,X=map(int,input().split())
arr=list(map(int,input().split()))

answer=0

for i in range(2<<(N-1)):
    maxValue=0
    minValue=1e9
    sumValue=0
    for j in range(N):
        if i&(1<<j):
            sumValue+=arr[j]
            maxValue=max(maxValue,arr[j])
            minValue=min(minValue,arr[j])
    if L<=sumValue<=R and maxValue-minValue>=X:
        answer+=1

print(answer)

비트 마스킹을 통해 모든 부분 집합을 구하는 문제이다. 비트를 이용해서 모든 경우의 수를 2를 비트 이동시켜서 구해준 후, 있고 없고에 따라 &연산으로 확인해주면 된다.

이렇게 Python로 백준의 "캠프 준비" 문제를 해결해보았습니다. 코드와 개념 설명을 참고하여 문제를 해결하는 데 도움이 되셨길 바랍니다! 😊

0개의 댓글