깡뇽

[백준] 2798번 블랙잭 파이썬 본문

Algorithm/BAEKJOON

[백준] 2798번 블랙잭 파이썬

깡뇽 2022. 3. 4. 15:15
반응형

브루트포스 Bruteforcing 알고리즘 유형의 문제라고 한다.

무차별적으로 대입하는 그냥 다 확인해보는 그런 유형이라고 할 수 있다. (완전탐색)

Bronze 2 레벨에 속하는 문제인데 이 문제는 꼭 풀이를 보지 않고 풀겠노라 다짐하면서 시작한다.

 

2798번 블랙잭 풀이

[시도1] 았습니다!!

n, m = map(int, input().split())

numbers = list(map(int, input().split()))
big = 0

for i in range(0, n):
  for j in range(i+1, n):
    for k in range(j+1, n):
      sum = numbers[i] + numbers[j] + numbers[k]
      if sum > big and sum <= m:
        big = sum

print(big)

n개의 숫자들 중에서 3개를 꼽아서 숫자 m보다 크지 않으면서도 최대한 가까운 숫자 합을 만들어야 한다.

n개의 숫자들을 numbers에 넣어주고 for문을 3개 사용해서 숫자 3개의 합을 모두 구한다. 합은 sum에 넣어주는데 sum 값이 m보다 크지 않으면서 이전까지의 숫자 합 중에서 m에 가장 가까운 숫자인 big보다 크면 sum으로 대체해준다. 

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

 

2798번: 블랙잭

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

www.acmicpc.net

반응형