29. N으로 표현

1. 문제

12는 5와 아래의 4개의 산술 연산으로만 표현할 수 있습니다.

12 = 5 + 5 + (5/5) + (5/5)
12 = 55 / 5 + 5 / 5
12 = (55 + 5) / 5

5가 사용되는 횟수는 각각 6,5,4번이다.

그리고 그 중 가장 작은 것이 4이다.

이와 같이 숫자 N과 숫자가 주어졌을 때 N만으로 표현되는 방법 중에서 N의 사용 횟수 중 최소값을 반환하는 해함수를 작성하면 4개의 산술 연산은 다음과 같이 된다.

.

2. 나의 대답

N을 한번쓰면 두번쓰면.. 이방법은 맞는데 그다음에 어떻게 해야될지 몰랐습니다.

제 시간에 풀지 못해서 포기했습니다.

세 번째 답변

def solution(N, number):
    s = (set() for i in range(9))
    
    for i in range(1, 9) :
        s(i).add(int(str(N)*i))  # 사칙연산이 아닌 그냥 이어붙여서 나온 수 ex. 222 (N=2, i=3)
        
        for j in range (1, i) :
            for a in s(j) :  # a, b를 더하면 i가 되도록 만든 수
                for b in s(i-j) :
                    s(i).add(a+b)
                    s(i).add(a-b)
                    s(i).add(a*b)
                    if b !
= 0 : s(i).add(int(a/b)) if number in s(i) : # 만약 i개를 사용해서 나올 수 있는 숫자 리스트 중 있다면 i를 return return i return -1 # s = (set() for i in range(9)) 결과 : # (set(), set(), set(), set(), set(), set(), set(), set(), set()) # N = 5일 때, s(i).add(int(str(N)*i)) 결과 : # (set(), {5}, {55}, {555}, {5555}, {55555}, {555555}, {5555555}, {55555555}) # for a in s(j):, for b in s(i-j): N = 5일 때 결과 : # 5 5 | 5 55 | 55 5 | 5 555 | 55 55 | 555 5... | 5555555 5

출처: 응답 코드

원천 : https://ljw538.tistory.com/72

원천 : https://mjmjmj98.tistory.com/106


https://school.programmers.co.kr/learn/courses/30/lessons/42895?language=python3

프로그램 제작자

코드 중심 개발자를 고용하십시오. 배치 기반 위치 매칭. 프로그래머의 개발자별 프로필에 가입하고 기술 호환성이 좋은 회사와 연결하십시오.

Programmer.co.kr