-
[백준] 2798번: 블랙잭(브루트포스) - PythonAlgorithm 2022. 3. 7. 18:09
https://www.acmicpc.net/problem/2798
[문제유형]
- 브루트포스
[문제]
[제출한 코드 및 풀이]
- 지난번에 combination(조합)을 사용했던적이 있는데, 그 당시와 비슷한 방식으로 풀어야할 것 같아서 사용했다.
- n, m을 입력받고 그 다음줄에 입력 받은 숫자들을 numbers로 한 번에 담았다.
- 각 조합 중 합계가 가장 큰 숫자를 출력해야하니까 maxNum이라는 변수를 만들어줬다.
- numbers의 숫자를 세개씩 조합으로 만들고 그 다음에 for문을 돈다.
- for문은 조합의 길이만큼 돌고 각 조합의 합계가 maxNum보다 크고 m보다 크지 않을 경우 maxNum을 해당 조합의 합계로 변경해서 출력한다.
from itertools import combinations n, m = map(int, input().split()) numbers = list(map(int, input().split())) maxNum = 0 combi = list(combinations(numbers, 3)) for i in range(len(combi)): if maxNum < sum(combi[i]) <= m: maxNum = sum(combi[i]) print(maxNum)
'Algorithm' 카테고리의 다른 글
[백준 알고리즘] C++ | 2669번 직사각형 네개의 합집합의 면적 구하기 (0) 2022.06.15 [백준] 2231번: 분해합(브루트포스) - Python (0) 2022.03.07 [백준] 11399번: ATM(그리디 알고리즘) - Python (0) 2022.03.03 [백준] 11047번: 동전 0(그리디 알고리즘) - Python (0) 2022.03.03 [백준] 1541번: 잃어버린 괄호(그리디 알고리즘) - Python (0) 2022.03.03