문제 제목: 블랙잭
문제 난이도: 하
문제 유형: 배열, 완전 탐색
추천 풀이 시간: 20분
첫 번째 인풋 N, M
두 번째 인풋 N에 해당하는 카드 배열
첫 번째 예제의 경우 5C3 5개중에 3개를 선택하는 경우이다
완전 탐색을 통해 m (max) 값을 넘지 않는 선에서 반복문을 돌며 최대값을 answer에 저장한다.
이후에 완전히 순회하면서 기존 answer 보다 해당 반복문이 가지는 answer가 큰 경우 max() 함수를 통해 더 큰 값을 answer에 재할당
이후 반복문을 빠져나와 answer를 print()
n, m = list(map(int, input().split(' ')))
arr = list(map(int, input().split(' ')))
answer = 0
length = len(arr)
print('n=', n, 'max=', m)
print('arr=', arr)
# 3개를 골라야 함 5C3
for i in range(0, length):
for j in range(i+1, length):
for k in range(j+1, length):
sum = arr[i] + arr[j] + arr[k]
if sum <= m:
answer = max(answer, sum)
print(answer)
VS code 환경에서 input에 담기는 값을 확인하기 위해 print를 찍어봤는데, 이를 주석처리하지 않고 진행하다가 블로킹 되었다
백준은 에디터가 틀렸을 때 어디서 틀렸는지 알려주질 않는게 아쉽군요
n, m = list(map(int, input().split(' ')))
arr = list(map(int, input().split(' ')))
answer = 0
length = len(arr)
# 주석처리
# print('n=', n, 'max=', m)
# print('arr=', arr)
# 3개를 골라야 함 5C3
for i in range(0, length):
for j in range(i+1, length):
for k in range(j+1, length):
sum = arr[i] + arr[j] + arr[k]
if sum <= m:
answer = max(answer, sum)
print(answer)