백준 2798번
주어준 수를 넘지 않는 가장 가까운 3개의 숫자합 구하기
answer = input().split()
nums = input().split()
N = int(answer[0])
M = int(answer[1])
nums = list(map(int, nums))
nums.sort() # 정렬
max_value = 0
def answer(N,M):
global max_value
for i in range(N-2):
j = i+1
k = len(nums)-1
while j < k: # 투포인트
sum = nums[i] + nums[j] + nums[k]
if sum < M:
max_value = max(sum,max_value) # 갱신
j += 1
elif sum > M:
k -= 1
else:
return M
return max_value
print(answer(N,M))
import itertools
max_value = 0
answer = input().split()
nums = input().split()
M = int(answer[1])
nums = list(map(int, nums))
def answer(M):
global max_value
for combi in itertools.permutations(nums,3):
if sum(combi) <= M:
max_value = max(max_value,sum(combi))
return max_value
print(answer(M))