[프로그래머스] N으로 표현
문제
숫자 N과 number가 주어질 때, N과 사칙연산만 사용해서 표현할 수 있는 방법 중 N 사용 횟수의 최솟값을 return 하도록 solution 함수를 작성하세요.
제한사항
- N은 1 이상 9 이하입니다.
- number는 1 이상 32,000 이하입니다.
- 수식에는 괄호와 사칙연산만 가능하며 나누기 연산에서 나머지는 무시합니다.
- 최솟값이 8보다 크면 -1을 return 합니다.
코드
result = int(1e9)
def solution(N, number):
solve(0, 0, number, N)
return -1 if result == int(1e9) else result
def solve(num, used, number, N):
global result
if used > 8: return
elif num == number:
result = min(result, used)
return
n = 0
for i in range(0,8):
n = n * 10 + N
solve(num + n, used + i + 1, number, N)
solve(num * n, used + i + 1, number, N)
solve(num - n, used + i + 1, number, N)
solve(num // n, used + i + 1, number, N)
Author And Source
이 문제에 관하여([프로그래머스] N으로 표현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@haman/프로그래머스-N으로-표현저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)