title: "[프로그래머스] N으로 표현 Python 파이썬 해설 (Level 3) - 이도훈"
cleanUrl: "programmers/42895"
description: "프로그래머스 Level 3 문제 [N으로 표현]의 풀이를 정리합니다."

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

import itertools

def solution(N, number):
    # S[i] = N을 i개 써서 만들 수 있는 수의 집합
    S = [set() for _ in range(9)]
    
    for i in range(1, 9):
        nums = S[i]
        # N을 이어붙인 수
        nums.add(int(str(N) * i))
        
        for j in range(1, i):
            for x, y in itertools.product(S[j], S[i - j]):
                nums.add(x + y)
                nums.add(x - y)
                nums.add(x * y)
                if y != 0:
                    nums.add(x // y)
        
        if number in nums:
            return i
        
    return -1

출처

프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges