본문 바로가기

Coding Test/Programmers

[프로그래머스/파이썬] N으로 표현

728x90

 

 

나의 풀이

def solution(N, number):
    valid = [set()] * 9

    for n in range(1, 9):
        temp = set()
        temp.add(int(str(N) * n))
        for i in range(1, n // 2 + 1):
            for x in valid[i]:
                for y in valid[n - i]:
                    temp.add(x + y)
                    temp.add(x - y)
                    temp.add(y - x)
                    temp.add(x * y)
                    if y:
                        temp.add(x // y)
                    if x:
                        temp.add(y // x)
        if number in temp:
            return n
        valid[n] = temp
    return -1

 

 

 

반응형