combinations 쓰는 문제가 많았다..! 1주차 때 정리했던 내용 참고.. 이제 완전 익숙해졌당
✏ 풀이
# 블랙잭
import sys
from itertools import combinations
input = sys.stdin.readline
n, m = map(int, input().split())
nums = list(map(int, input().split()))
sums = list()
for x, y, z in combinations(nums, 3):
sums.append(x + y + z)
sums.sort()
result = 0
for sum in sums:
if sum > m:
break
result = sum
print(result)
✏ 풀이
# 셀프 넘버
nums = set(range(1, 10001))
generated_nums = set() # 생성자가 있는 수
def d(n):
return n + sum(map(int, str(n)))
for num in range(1, 10001):
generated_nums.add(d(num)) # d(n)으로 생성된 수 = 생성자가 있는 수!
self_nums = nums - generated_nums # 셀프 넘버 = 생성자가 없는 수 = 1~10000 - 생성자 있는 수
for num in sorted(self_nums):
print(num)