-
[동적계획법(Dynamic Programming)] N으로 표현알고리즘/프로그래머스 2021. 10. 9. 19:19
https://programmers.co.kr/learn/courses/30/lessons/42895
처음에 아래와 같이 푸니까, 테스트케이스 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
성공!
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[위클리 챌린지] 교점에 별 만들기 (0) 2021.11.04 [동적계획법(Dynamic Programming)] 등굣길 (0) 2021.10.09 [탐욕법(Greedy)] 구명보트 (0) 2021.10.09 [탐욕법(Greedy)] 큰 수 만들기 (0) 2021.10.09 [탐욕법(Greedy)] 조이스틱 (0) 2021.10.09