from pprint import pprint
def solution(N, number):
if N == number:
return 1
answer = 0
dp = [set() for _ in range(9)]
dp[1].add(N)
for i in range(2, 9):
# N concat
dp[i].add(int(str(N) * i))
for j in range(1, i // 2 + 1):
for y in dp[j]:
for x in dp[i-j]:
dp[i].add(x + y)
dp[i].add(x - y)
dp[i].add(x * y)
dp[i].add(-x + y)
dp[i].add(-x - y)
dp[i].add(-x * y)
if y != 0:
dp[i].add(x // y)
if number in dp[i]:
return i
return -1
'Python > 알고리즘' 카테고리의 다른 글
DP Level 3 등굣길 - python (프로그래머스) (0) | 2023.06.30 |
---|---|
DP Level 3 정수 삼각형 - python (프로그래머스) (0) | 2023.06.30 |
깊이/너비 우선 탐색(DFS/BFS) Level 3 단어 변환 - python (프로그래머스) (0) | 2023.06.23 |
깊이/너비 우선 탐색(DFS/BFS) Level 2 타겟 넘버 - python (프로그래머스) (0) | 2023.06.23 |
완전탐색 Level 2 전력망을 둘로 나누기 - python (프로그래머스) (0) | 2023.06.23 |