링크 : https://www.acmicpc.net/problem/2798
2798번: 블랙잭
첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장
www.acmicpc.net
- 문제
- 소요시간: 10분 20초
1. 입력받기
2. 알고리즘 해석
완전 탐색을 해주면 된다
for문을 3중 중첩하여
for i in range(n-2):
for j in range(i + 1, n - 1):
for k in range(j + 1, n):
해준 후, 3개의 원소의 합이
m 미만인 최대의 값을 구해준다
3. 출력하기
- 설계하기(접근방법)
- 코드(출력)
n, m = map(int, input().split())
arr = list(map(int, input().split()))
maximum = 0
for i in range(n-2):
for j in range(i + 1, n - 1):
for k in range(j + 1, n):
temp = arr[i] + arr[j] + arr[k]
if temp > m:
temp = 0
if temp > maximum:
maximum = temp
print(maximum)
- 얻어갈 부분
1. 배열의 범위를 잘못 정해 조금 시간이 더 걸렸다. 다음엔 주의하자
'알고리즘(백준) > 브루트 포스' 카테고리의 다른 글
[알고리즘/브루트 포스] 1436번 : 영화감독 숌 - python (0) | 2024.01.12 |
---|---|
[알고리즘/브루트 포스] 15721번 : 번데기 - python (0) | 2023.06.08 |
[알고리즘/브루트 포스] 18312번 : 시각 - python (0) | 2023.06.01 |
[알고리즘/브루트 포스] 19532번 : 수학은 비대면강의입니다 - python (1) | 2023.05.30 |
[알고리즘/브루트 포스] 2231번 : 분해합 - python (0) | 2023.05.30 |