컴공생의 다이어리

[프로그래머스] N으로 표현 - 파이썬(Python) 본문

Development/Algorithm & Coding Test

[프로그래머스] N으로 표현 - 파이썬(Python)

컴공 K 2022. 6. 21. 00:01

[프로그래머스] N으로 표현 - 파이썬(Python)

 

 

 

def solution(N, number):
    if N == number:
        return 1

    dp = [{N}]
    for i in range(2, 9):  # 숫자 n을 i번 사용할 때
        nums = set([int(str(N) * i)])  # 기본으로 숫자 n을 i번 이어서 생성
        for j in range(0, int(i / 2)):
            for x in dp[j]:  # n을 j+1번 사용했을 때의 경우와
                for y in dp[i - j - 2]:  # n을 i-j-1번 사용했을 때의 경우
                    nums.add(x + y)
                    nums.add(x - y)
                    nums.add(y - x)
                    nums.add(x * y)
                    if y != 0:
                        nums.add(x // y)
                    if x != 0:
                        nums.add(y // x)
        if number in nums:  # number 숫자를 만들 수 있다면
            return i  # i 반환
        dp.append(nums)
    return -1  # 최솟값이 8보다 크면

 

 

 

https://programmers.co.kr/learn/courses/30/lessons/42895

 

코딩테스트 연습 - N으로 표현

 

programmers.co.kr

 

728x90
Comments