1. 문제
2. 풀이 과정
방법 1) N을 한 개 사용할 때부터 8개까지 사용할 때까지 돌면서, 찾는 값이 나오면 종료한다.
1개일 때 : N(1)
2개일 때 : N(1) + 연산자 + N(1)
3개일 때 : N(1) + 연산자 + N(2), N(2) + 연산자 + N(1)
...
여기서 연산자가 +, *일 때는 연산자 기준으로 좌우가 바뀌어도 같은 값이지만 -, //는 다른 값이 나올 수 있어서 추가로 고려해주어야 한다.
def solution(N, number):
answer = 0
arr = []
for i in range(1, 9):#사용하는 N의 수
temp = set() #중복제거를 위해 집합 사용
temp.add(int(str(N)*i)) #5, 55, 555
for j in range(1, i//2+1):
for a in arr[j-1]:#연산자 기준 앞에 오는 숫자
for b in arr[i-j-1]: #연산자 기준 뒤에 오는 숫자
#덧셈, 곱셈 : 피연산자 순서가 바뀌어도 동일
temp.add(a+b)
temp.add(a*b)
#뺄셈, 나눗셈 : 피연산자 순서가 바뀌면 다른 값
temp.add(a-b)
temp.add(b-a)
if a != 0:
temp.add(b//a)
if b != 0:
temp.add(a//b)
if number in temp:
return i
arr.append(temp)
return -1
'코딩문제풀이 > 프로그래머스' 카테고리의 다른 글
[Python] 여행경로 (0) | 2021.08.31 |
---|---|
[Python] 등굣길 (0) | 2021.08.31 |
[Python] 단속카메라 (0) | 2021.08.30 |
[Python] 섬 연결하기 (0) | 2021.08.30 |
[Python] 이중우선순위큐 (0) | 2021.08.30 |