코드리뷰
[python_파이썬_Fail_미해결]백준_14888번_연산자 끼워넣기_백트레킹_풀이
HEODINK
2024. 8. 26. 20:53
728x90
반응형
공부하는허딩크 : https://www.youtube.com/live/WSAIqn6prZQ?feature=shared
<첫번째 시도 : 틀렸습니다.>
총 1시간 이상 고민한 것 같은데 아직 해결을 못했다.
어떻게 백 트레킹으로 구현해야하는지도 감이 잡히지 않는다.
eval()을 활용해서 연산의 결과 값을 구하는 코드를 작성하였다.
※ 이 문제의 조건은 일반적인 연산 법칙을 따르는 것이 아닌 순서대로 연산을 하는게 주요 포인트이다. => 그래서 틀림.
#첫번째 시도 : 연산자를 순서대로 계산하는 조건 불만족
N = int(input())
nums = list(map(int, input().split()))
oper_num = list(map(int, input().split()))
oper = ["+", "-", "*", "//"]
new_oper = []
for i in range(len(oper)):
if oper_num[i] > 0:
new_oper.extend(list(oper[i] * oper_num[i]))
check_oper = list(i for i in itertools.permutations(new_oper, len(new_oper)))
answer = []
for i in range(len(check_oper)):
result = []
for j in range(len(nums)):
if j < len(nums) - 1:
result.append(nums[j])
result.append(check_oper[i][j])
else:
result.append(nums[j])
answer.append(eval("".join(map(str, result))))
print(max(answer))
print(min(answer))
728x90
반응형