728x90
[백준] 2798번 Python 파이썬
https://www.acmicpc.net/problem/2798
2798번: 블랙잭
첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장
www.acmicpc.net
이 문제는 brute force 알고리즘을 사용하여 푸는 문제이다.
# 틀린 코드
다음 코드로 실행하였더니 아래 사진과 같이 리스트의 수들이 중복되어 더해졌다.
n, m = map(int, input().split())
num = list(map(int, input().split()))
rt = 0
for i in num[0:n-2]:
for j in num[1:n-1]:
for k in num[2:n]:
sum = i + j + k
if rt < sum <= m:
rt = sum
# 수정된 코드
중복을 피하기 위해 다음과 같은 코드로 수정해주었다.
n, m = map(int, input().split())
num = list(map(int, input().split()))
rt = 0
for i in range(n-2):
for j in range(i+1,n-1):
for k in range(j+1,n):
sum = num[i] + num[j] + num[k]
if rt < sum <= m:
rt = sum
print(rt)
혼자 공부하며 올리는 블로그입니다. 틀린 내용은 댓글 남겨주시면 감사하겠습니다.
728x90
'BAEKJOON (Python) > 단계별' 카테고리의 다른 글
BAEKJOON_1085 "직사각형에서 탈출" PYTHON (0) | 2023.03.22 |
---|---|
BAEKJOON_27323 "직사각형" PYTHON (0) | 2023.03.22 |
BAEKJOON_18870 "좌표 압축" PYTHON (0) | 2023.03.20 |
BAEKJOON_10814 "나이순 정렬" PYTHON (0) | 2023.03.20 |
BAEKJOON_1181 "단어 정렬" PYTHON (0) | 2023.03.18 |