https://programmers.co.kr/learn/courses/30/lessons/42895?language=python3
다이나믹 프로그래밍을 이용하는 줄 몰랐으면 어려웠을 것 같은 문제
def solution(N, number):
answer = 0
dp = [set() for i in range(9)]
for i in range(1,9):
dp[i].add(int(str(N)*i))
for j in range(i//2+1):
for first in dp[j]:
for second in dp[i-j]:
dp[i].add(first + second)
dp[i].add(abs(first-second))
dp[i].add(first*second)
if second != 0:
dp[i].add(first // second)
if first != 0:
dp[i].add(second // first)
if number in dp[i]:
return i
return -1