반응형
문제
https://www.acmicpc.net/problem/2798
코드
n, m = map(int, input().split())
card = list(map(int,input().split()))
ans = 0
for x in range(n):
for y in range(x+1 ,n):
for z in range(y+1 ,n):
card_sum = card[x] + card[y] + card[z]
if card_sum <= m:
ans = max(ans, card_sum)
print(ans)
설명
이 문제는 별도의 빠른 풀이법이 따로 존재하지 않는다.
모든 경우의 수를 시도해보는 알고리즘인데 이를 '브루트 포스(Brute force)'라고 칭한다.
따라서 반복문을 통해서 카드의 합계를 비교해주고 m을 넘지 않는 최대 수치를 비교하여 출력한다.
반응형
'개발 연습장 > 백준 문제풀이' 카테고리의 다른 글
[파이썬, Python] 백준 7568: 덩치 (3) | 2023.01.19 |
---|---|
[파이썬, Python] 백준 2231: 분해합 (0) | 2023.01.18 |
[파이썬, Python] 백준 25501: 재귀의 귀재 (0) | 2023.01.16 |
[파이썬, Python] 백준 10870: 피보나치 수 5 (0) | 2023.01.13 |
[파이썬, Python] 백준 10872: 팩토리얼 (0) | 2023.01.12 |