이번에는 백준 2798번 블랙잭 문제를 해결하는 과정을 알아보겠습니다.
블랙잭 문제는 간단합니다. 주어진 카드들 중에서 3가지 카드를 골라 21을 넘지 않는 (21까지 허용) 범위에서 최대 값이 되는 수를 맞추면 승리하는 게임입니다.
- 이 문제에서는 카드의 갯수 N과 최댓값에 가깝게 만들어야 하는 M의 값을 첫 번째 입력값으로 주어집니다.
- 다음으로는 N개의 카드의 숫자들을 입력받습니다.
- 다음으로 3중 for문을 사용하여 이전 최댓값과 비교해가면서 정답을 찾으면 됩니다.
let line = readLine()!.split(separator: " ").map { Int($0)! }
var arr: [Int] = readLine()!.split(separator: " ").map { Int($0)! }
var result = 0
for i in 0..<arr.count {
for j in (i+1)..<arr.count {
for k in (j+1)..<arr.count {
let sum = arr[i] + arr[j] + arr[k]
if line[1] >= sum {
result = max(result, sum)
}
}
}
}
print(result)
'Algorithm > Baekjoon' 카테고리의 다른 글
Swift - 백준 10845번 큐 (0) | 2024.08.09 |
---|---|
Swift - 백준 10816번 숫자 카드2 (0) | 2024.08.08 |
Swift - 백준 11650번 좌표 정렬하기 (정렬) (0) | 2024.08.07 |
Swift - 백준 2839번 설탕 배달 (다이나믹 프로그래밍 DP) (0) | 2024.08.06 |
Swift - 백준 2292 벌집 (0) | 2024.08.05 |