알고리즘/프로그래머스
[동적계획법(Dynamic Programming)] N으로 표현
래울
2021. 10. 9. 19:19
https://programmers.co.kr/learn/courses/30/lessons/42895
코딩테스트 연습 - N으로 표현
programmers.co.kr
처음에 아래와 같이 푸니까, 테스트케이스 5, 6, 7 다 틀려서 ..??? 했는데
이전 결과에 N연산만 하는 것이아니라, 숫자 4개의 조합의 경우
(3개로만들수있는경우 * 1개로만들수있는경우) , (2개로만들수있는경우 * 2개로만들수있는경우) 와 같이 모두 경우를 추가해줘야한다.
- 코드
def solution(N, number):
cases = {}
if N==number:
return 1
cases[1] = set({N})
for i in range(2, 9):
temp = [int(str(N)*i)]
for c_half in range(1, i//2+1):
for x in cases[c_half]:
for y in cases[i-c_half]:
taemp.append(x*y)
temp.append(abs(x-y))
temp.append(x+y)
if x!=0 and y!=0:
temp.append(x//y)
temp.append(y//x)
if number in temp:
return i
cases[i] = (set(temp))
return -1
성공!