감자주먹밥

[백준] 2798 블랙잭 (swift) 본문

알고리즘/백준

[백준] 2798 블랙잭 (swift)

JustHm 2021. 12. 27. 23:19
728x90

 

문제

2798번: 블랙잭

 

2798번: 블랙잭

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

www.acmicpc.net

문제 해결

부른 값 보다 크지 않은 가까운 값 뽑거나, 같은 값을 출력해야 한다.

3중 for문으로 카드 3장을 선택해 합하고, 맞는 값인지 확인하기.

코드

var info: [Int] = readLine()!.split(separator: " ").map{Int($0)!}
var card: [Int] = readLine()!.split(separator: " ").map{Int($0)!}.sorted(by: <)
var answer: Int = 0
print(info)
print(card)

for first in 0..<info[0] {
    for second in first+1..<info[0] {
        for third in second+1..<info[0] {
            let result = card[first] + card[second] + card[third]
            if result <= info[1] {
                answer = result > answer ? result : answer
            }
        }
    }
}
print(answer)

문제 해결 중 어려웠던 것

첫 번째로는 문제를 잘 안 읽었던 거,,, 부른 값 보다 큰 값은 들어가면 안 되는 걸 몰랐다.

두 번째로 항상 프로그래머스에서만 풀어보다 백준에 오니까 print로 답을 띄우는 걸 깜빡하고 위 코드처럼...

확인용 print 코드가 있는 채로 제출해버렸다. 난 내가 뭐 잘못해서 틀린 줄 ㅠㅠ

백준도 빨리 익숙해져야겠다.

728x90

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 7568 덩치 (swift)  (0) 2022.01.03
[백준] 2231 분해합 (swift)  (0) 2021.12.28
Comments