위 문제에서는 3장의 카드를 골라 M과 가장 가까운 카드 수의 합을 구하는 문제이다. 3장의 카드 합 <= M 이라는 것을 알 수 있다. 먼저 입력 함수를 받기 위해 import sys 몇 장의 카드를 받을 것이며 최대의 합 M을 입력한다.
N,M = map(int, sys.stdin.readline().rstrip().split()) 입력 한 카드의 수는 리스트 C에 받을 것이다. for _ in range(N): C.append(sys.stdin.readline().rstrip().split()) 여기서 생각해보아야 할 점은, 처음에는 5, 6, 7을 뽑을 것이다. 두번쨰는 5, 6, 8 세번쨰는 5, 6, 9 네번째는 5, 7, 6을 뽑게 되면 5, 6, 7과 같게 된다.
이렇게 뽑았던 카드를 순서를 바꿔서 다시 뽑는다면 연산시간이 오래 걸릴 것이다. 따라서, 네번째는 5, 7, 8 다섯번째는 5, 7, 9 여섯번째는 5, 8, 9 일곱번째는 6, 7, 8이 될 것이다.
결국 ...
#
백준2789
#
백준알고리즘2789
#
브루트포스
#
블랙잭
#
삼중for문
#
파이썬
원문 링크 : [Python] 백준알고리즘 2798번 블랙잭 (B2)