[문제]
https://www.acmicpc.net/problem/2798
[풀이]
간단한 문제인데 삼중 for문의 범위 지정이 가장 신경 써야 할 부분 같다.
특정 카드를 한 장 뽑았다면 다시 그 카드를 뽑을 수 없기 때문에 세 반복문의 index가 겹치지 않아야 한다.
세 카드를 더했을 때 m을 넘지 않는 값 중 가장 큰 값을 구해준다.
[코드]
import sys
if __name__ == '__main__':
n, m = map(int, sys.stdin.readline().split())
card = sorted(list(map(int, sys.stdin.readline().split())))
res = 0
for i in range(0, n-2):
for j in range(i+1, n-1):
for k in range(j+1, n):
if card[i] + card[j] + card[k] > m:
continue
else:
res = max(res, card[i] + card[j] + card[k])
print(res)
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 1237번 정ㅋ벅ㅋ (0) | 2021.07.28 |
---|---|
[Python] BOJ/백준 11650번 좌표 정렬하기 (0) | 2021.07.28 |
[Python] BOJ/백준 1018번 체스판 다시 칠하기 (0) | 2021.07.26 |
[Python] BOJ/백준 10828번 스택 (0) | 2021.07.26 |
[Python] BOJ/백준 10866번 덱 (0) | 2021.07.26 |