programmers.co.kr/learn/courses/30/lessons/42895
코딩테스트 연습 - N으로 표현
programmers.co.kr
[프로그래머스] N으로 표현 (LEVEL 3)
동적 프로그래밍 문제.
쉽게 생각했는데 생각보다 고민한 문제.
처음에는 dp[n] = dp[n-1] + ['+N', '-N', '/N', '*N'] 계산을 한 결과만 구해나가면 될줄 알았지만,
dp[n] = dp[i] + dp[n-i]; i : 1~n-1 라고 생각하고 풀어야한다.
조건이 많아서(max deep이 8) DFS로 풀어도 시간초과가 나지 않고 풀리긴 한다.
<파이썬 코드>
def solution(N, number):
adds= lambda x,y: map(int,[x+y,x-y,x/y,x*y])
dp = [0]
for i in range(1,9):
tmp = set({int(str(N)*(i))})
for j in range(1,i):
for x in dp[j]:
for y in dp[i-j]:
if y!=0:
tmp.update(adds(x,y))
dp.append(tmp)
if number in dp[i]: return i
return -1
'PROGRAMMERS' 카테고리의 다른 글
[프로그래머스] 메뉴 리뉴얼 ( LEVEL 2 ) (0) | 2021.04.18 |
---|---|
[프로그래머스] 소수찾기 (LEVEL 2) (0) | 2021.04.18 |
[프로그래머스] - 사칙연산 (LEVEL 4) (0) | 2021.03.19 |
[프로그래머스] - 매출 하락 최소화 (LEVEL 4) (0) | 2021.03.16 |
[프로그래머스] - 지형 이동 (LEVEL4) (0) | 2021.03.11 |
댓글