본문 바로가기

알고리즘 테스트

[백준] 2798번 블랙잭

사용언어: python3

문제 : [링크 www.acmicpc.net/problem/2798]

백준 사이트

 

내가 푼 답

def solution(n, m)-> int:
    cards = list(map(int, input().split()))
    cards.sort()

    result = 0
    for i in range(n-2):
        left, right = i+1, len(cards)-1
        while left < right:
            sum = cards[i]+cards[left]+cards[right]
            if m == sum:
                return sum
            elif m < sum:
                right -= 1
            else: # sum < m
                if result < sum:
                    result = sum
                left += 1
    return result

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

 

투포인터를 이용해서 풀어보았다.