오류로 임시 저장까지 싹 날아감 ^^
2798
내 풀이
from itertools import combinations
N, M = map(int, input().split())
lst = list(map(int, input().split()))
max_sum = 0
#lst 중 3개 뽑는 조합을 하나씩 꺼내는 역할
#for을 써서 모든 조합을 꺼내는 과정 필요
for selection in combinations(lst, 3):
#조합 하나씩 꺼내서 3개 더하는 거임
sum_sel = sum(selection)
#M보다 안 클 경우만
if sum_sel <= M:
#max_sum과 sum_sel 중 비교하여 큰 값을 max_sum에 저장
#그러면 조합으로 구한 값 하나씩 돌면서 비교
max_sum = max(max_sum, sum_sel)
print(max_sum)
### 정리
#### 설계
- 조합 같아서 조합으로 모든 경우의 수를 구함
- 그 합이 M이 넘지 않는 경우만 최댓값
#### 몰랐거나 틀렸던 포인트
#### 추가로 궁금한 거?
**부르트 포스(완전 탐색) 직접 구현**
for i in range(n): # 첫 번째 카드 선택
for j in range(i+1, n): # i 다음 카드부터 선택
for k in range(j+1, n): # j 다음 카드부터 선택
sum_cards = lst[i] + lst[j] + lst[k]
# 조건에 따라 처리
**내장 함수 안 쓰고 조합 함수 자체를 구현**
def factorial(x):
result = 1
for i in range(1, x + 1):
result *= i
return result
def comb(n, r):
return factorial(n) // (factorial(r) * factorial(n - r))
## 2231 (보류)
### 내 풀이
### 정리
#### 설계
#### 몰랐거나 틀렸던 포인트
## 19532
### 내 풀이
a, b, c, d, e, f = map(int, input().split())
for x in range(-999, 1000):
for y in range(-999, 1000):
if ax + by == c and dx + ey == f:
print(x, y)
exit()
### 정리
#### 설계
#### 몰랐거나 틀렸던 포인트
## 1018 (보류)
### 내 풀이
### 정리
#### 설계
#### 몰랐거나 틀렸던 포인트
## 1436
### 내 풀이
N = int(input())
num = 666
count = 0
while True:
if '666' in str(num):
count += 1
if count == N:
print(num)
break
num += 1
### 정리
#### 설계
#### 몰랐거나 틀렸던 포인트
## 2839
### 내 풀이
N = int(input())
total = 0
while N >= 0:
if N % 5 == 0:
total = total + (N //5)
print(total)
break
N = N - 3 #(3kg 봉투를 하나 쓰겠다)
total = total + 1
else:
print(-1)
### 정리
#### 설계
#### 몰랐거나 틀렸던 포인트