[문제]
https://www.acmicpc.net/problem/2798
2798번: 블랙잭
첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장
www.acmicpc.net

[풀이]
간단한 문제인데 삼중 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 |
[문제]
https://www.acmicpc.net/problem/2798
2798번: 블랙잭
첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장
www.acmicpc.net

[풀이]
간단한 문제인데 삼중 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 |