ํฌ๋น ์ค ๊ณผ์ ์๋ 3๋ฌธ์ ์ ์์ ํ์ ๋ฌธ์ ์ด๋ค.
๋ฌธ์ ๋ฅผ ์ดํดํ๋ ๊ฒ ํ๋ค์๋ค. ์๋ฆฐ ์ฟ์ ๊ธธ์ด๋ฅผ ์์ ํ์ํ๋ ๋ฌธ์ ์๋ค.
n, c, f= map(int, input().split())
arr = []
for _ in range(n):
arr.append(int(input()))
m = max(arr)
all_lst = []
for i in range(1, m+1): # i๋ ๊ธธ์ด!!!!!!
prices = 0
for ii in arr:
if ii%i != 0:
price = (ii//i)*i*f - (ii//i)*c
else:
price = (ii//i)*i*f - (ii//i-1)*c
prices += price
all_lst.append(prices)
print(max(all_lst))
์ฒ์์๋ DPS/DFS๋ฅผ ์ด์ฉํด ํ์ด์ผ ํ๋..?ํ๋๋ฐ
DPS/DFS/๋ฐฑํธ๋ํน ๊ด๋ จ ๋ฏธ๋ก ๋ฌธ์ ์์ ์ด๋ํ๋ฉด์ ์ฌ๊ทํจ์๊ฐ ์ด๋ป๊ฒ ๋์๊ฐ๋ ์ง ์ตํ๋ ๊ฒ ๋์์ด ๋ ๋ฌธ์ ๋ค.
pan = []
for _ in range(4):
pan.append(list(input().split()))
dx=[-1, 0, 1, 0]
dy=[0, 1, 0, -1]
path = []
paths = []
def move(x, y,depth):
global path
global paths
if depth ==9:
# paths.append(path.copy())
paths.append(' '.join(map(str, path)))
return
else:
for i in range(4):
xx=x+dx[i]
yy=y+dy[i]
if 0<=xx<=3 and 0<=yy<=3:
path.append(pan[x][y])
# path += pan[x][y]
move(xx, yy, depth+1)
path.pop()
for rownum in range(4):
for colnum in range(4):
move(rownum, colnum,1)
# print(paths)
# print(len(paths))
print(len(set(paths)))
itertools์ Combination, ์กฐํฉ์ ์ด์ฉํด์ ํผ ๋ฌธ์ ๋ค.
from itertools import combinations
n, m = map(int, input().split())
arr = list(input().split())
arr = [int(i) for i in arr]
lst = list(combinations(arr, 3))
l = [sum(i) for i in lst if sum(i) <= m]
print(max(l))