백준 - 2798번: 블랙잭 - 파이썬

SEONGJIN LEE·2022년 3월 8일
0

code-test

목록 보기
12/18

백준 - 2798번: 블랙잭

문제

입출력 형식 및 출처

m,n = map(int, input().split())
number_arr = list(map(int, input().split()))
sum_arr = []
number_arr.sort(reverse=True)

for i in range(len(number_arr)-2):
    for j in range(i+1,len(number_arr)-1):
        if number_arr[i]+number_arr[j] > n:
            continue
        for k in range(j+1, len(number_arr)):
            if number_arr[i]+number_arr[j]+number_arr[k] > n:
                continue
            sum_number = number_arr[i]+number_arr[j]+number_arr[k]
            sum_arr.append(sum_number)

print(max(sum_arr))

브루트포스 알고리즘 문제

  • 입력으로 주어진 수를 조건으로 이를 초과하지 않는 최대의 값을 만들어야한다
  • 먼저 내림차순으로 리스트를 정리한다
  • 조건문을 통해 기준을 초과한다면 다음 배열값으로 이동
  • 더한 값을 합의 배열에 담아두고, 마지막에 최대값을 찾아낸다
profile
조금 늦어도 꾸준하게

0개의 댓글