데이터사이언스 기록기📚

[백준/Python] 16938번(브루트포스 알고리즘)_캠프 준비 본문

Coding Test/백준(Python)

[백준/Python] 16938번(브루트포스 알고리즘)_캠프 준비

syunze 2023. 9. 12. 13:18

📌문제 유형

브루트포스 알고리즘, 비트마스킹, 백트래킹 (골드 Lv.5)

 

📌문제

 

16938번: 캠프 준비

난이도가 10, 30인 문제를 고르거나, 20, 30인 문제를 고르면 된다.

www.acmicpc.net

 

📌나의 문제풀이

- combination 활용해서 문제구성 조합 만들기

- 문제 난이도 합, 문제 난이도 범위 확인하

from itertools import combinations

n,l,r,x = map(int,input().split())
level_list = list(map(int,input().split()))

cnt = 0
for i in range(2,n+1):
    combination = list(combinations(level_list,i))
    for c in range(len(combination)):
        combi = sorted(combination[c])
        if combi[-1] - combi[0] >= x and l <= sum(combi) <= r:
            cnt += 1
print(cnt)

 

📌 다른사람의 문제풀이

- 똑같은 풀이

 

[백준(BOJ)] 16938번 : 캠프 준비 - PYTHON[파이썬]

https://www.acmicpc.net/problem/16938 16938번: 캠프 준비 난이도가 10, 30인 문제를 고르거나, 20, 30인 문제를 고르면 된다. www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 수학 브루

tooo1.tistory.com

from itertools import combinations

N, L, R, X = map(int, input().split())
difficulty = list(map(int, input().split()))
count = 0

for i in range(2,N+1):
    difficultyComb = list(combinations(difficulty,i))
    for j in difficultyComb:
        if L<=sum(j)<= R and max(j)-min(j) >= X:
            count+=1
    
print(count)

 

📌 리뷰

- 최대, 최소값만 필요한 경우 sorted() 앞뒤값 찾는 것보다 min,max 활용하기

728x90
Comments