Programming/1 Day 1 Commit [BaekJoon] 2798번: 블랙잭 (Python3) - Problem: https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 그 동안 학과 수업에 바빠서, 자바에 빠져 허우적 대던 차에 파이썬 1 day 1 commit을 지키지 못했다.. 모든 것은 핑계일 뿐, 내 자신 반성해 ㅠ 그래도 오랜만에 돌아왔으니 조금은 어려운 문제로 돌아왔다. 문제 자체는 어려운 것이 없다. 주어진 배열로 처리한 숫자들중에 가장 큰 합은 구하는데, 이것이 주어진 숫자보다 작아야 한다는 점. 알고리즘을 잘 생각하면 풀 수 있을 것도 같은데....? 첫 시도는 무참히 런타임 에러.. 다른 분의 코드를 참고하여 답안을 작성하였다. from itertools import combinations card_num, target_num = map(int, input().split()) card_list = list(map(int, input().split())) biggest_num = 0 for cards in combinations(card_list, 3): temp_sum = sum(cards) if biggest_num < temp_sum <= target_num: biggest_num = temp_sum print(biggest_num) combination을 import하여 식을 훨씬 간단하게 만들었다. 처음에 list형태로 입력값들을 받아준다. combinationd으로 3개를 뽑는다. (이 경우 모든 경우를 포함한다.) 세 개의 가장 큰 합이 주어진 숫자보다 작은 경우에 해당 식이 성립한다. 처음에 반복문을 세 개를 돌려야 한다고 생각했는데, 그럴 필요없이 파이썬의 내장 라이브러리 함수를 사용하여 쉽게 만들 수 있었다. (역시 파이썬이 짱!) 공유하기 게시글 관리 Mandy World 저작자표시 비영리 변경금지 'Programming > 1 Day 1 Commit' 카테고리의 다른 글 [BaekJoon] 지구온난화 - 실버2 (Python3) (0) 2024.02.15 [HackerRank] Find the Runner-Up Score! (Python3) (0) 2023.09.05 [Programmers] 자연수 뒤집어 배열로 만들기 (0) 2023.02.10 [HackerRank] Birthday Cake Candles (Python3) (0) 2023.02.06 [LeetCode] Add Two Numbers (Python3) (0) 2023.01.31 Contents 당신이 좋아할만한 콘텐츠 [BaekJoon] 지구온난화 - 실버2 (Python3) 2024.02.15 [HackerRank] Find the Runner-Up Score! (Python3) 2023.09.05 [Programmers] 자연수 뒤집어 배열로 만들기 2023.02.10 [HackerRank] Birthday Cake Candles (Python3) 2023.02.06 댓글 0 + 이전 댓글 더보기