컴공생의 다이어리
[프로그래머스] N으로 표현 - 파이썬(Python) 본문
[프로그래머스] 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
728x90
'Development > Algorithm & Coding Test' 카테고리의 다른 글
[프로그래머스] 영어 끝말잇기 - 파이썬(Python) (0) | 2022.06.25 |
---|---|
[프로그래머스] 비밀지도 - 파이썬(Python) (0) | 2022.06.24 |
[프로그래머스] 순위 - 파이썬(Python) (0) | 2022.06.20 |
[프로그래머스] 가장 먼 노드 - 파이썬(Python) (0) | 2022.06.19 |
[프로그래머스] 뉴스 클러스터링 - 파이썬(Python) (0) | 2022.06.18 |
Comments