반응형

https://www.acmicpc.net/problem/2798

 

2798번: 블랙잭

첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장

www.acmicpc.net

 

브론즈2

 

 

 

 

 

브루트포스 알고리즘을 사용하여 처음부터 M보다 작을 경우까지만 쭉 돌아주었다.

 

아래는 나의 풀이이다.

 

 

N, M = map(int, input().split()) # 입력받기
num_list = list(map(int, input().split())) #리스트로 입력받고 쪼개기

answer = 0
for i in num_list:
    for j in num_list:
        for k in num_list:
            if (i == j) or (j == k) or (i == k):
                continue #같은 위치에 있는 숫자는 더하지않는다: 중복제거
            now = i+j+k #현재 더해놓은 값은 now
            if (answer < now) and (M >= now): #현재 값이 answer보다 크면서 M보다 작다면
                answer = now # answer을 now값으로 교체해준다
print(answer) #브루트포스 알고리즘을 사용했다
728x90
반응형
컴공편입생 공부일기