문제

이 문제는 구현할 방법을 생각해내는게 가장 어려웠던 문제였다.
사실 구글링의 도움을 받아서 해결한 문제이다.
일단 첫번째로는 5를 이용하여 만들 수있는 숫자를 집합에 저장해준다.
[{5}, {55}, {555}, {5555}, {55555}, {555555}, {5555555}, {55555555}]
이런식으로 5를 이용하여 만들 수 있는 숫자를 저장을 해두고 이를 반복문을 통해 돌면서 사칙연산한 값을 확인해주면 된다.
나의 코드
def solution(N, number):
answer = 0
s = [set() for _ in range(8)]
for i in range (len(s)):
#N을 i개 사용해서 만든 숫자 s에 삽입
s[i].add(int(str(N)*(i+1)))
print(s)
for i in range (len(s)):
for j in range(i):
for op1 in s[j]:
for op2 in s[i - j - 1]:
#i+1 개의 n을 사용해서 구할 수 있는 수 저장
s[i].add(op1+op2)
s[i].add(op1-op2)
s[i].add(op1*op2)
if op2 !=0:
s[i].add(op1//op2)
if number in s[i]:
print(s)
answer = (i+1)
#최솟값 구하므로 이후의 값 구하지 않고 break
break
else:
answer = -1
return answer'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] 아이템 줍기 -python (0) | 2024.08.06 |
|---|---|
| [프로그래머스] 단어변환 - python 파이썬 (2) | 2024.08.01 |
| [프로그래머스] 더맵게 - python파이썬 (1) | 2024.07.25 |
| [프로그래머스] 디스크 컨트롤러 - python 파이썬 (0) | 2024.07.24 |
| [프로그래머스]이중우선순위 큐 - python 파이썬 (5) | 2024.07.22 |