[백준] 14888. 연산자 끼워넣기
문제
풀이
- permutations를 통해 모든 연산자의 조합을 구함.
- for문을 돌며 각 연산자의 조합에 대해서, enumerate함수를 사용하여 하나씩 계산 후 결과를 저장하는 res배열에 넣어줌.
- res배열의 max, min값을 각각 print 함.
코드
from itertools import permutations
def calc() :
n = int(input())
nums = list(map(int, input().split()))
tmp = list(map(int, input().split()))
op = []
for i in range(len(tmp)) :
if i == 0 :
for _ in range(tmp[i]) :
op.append('+')
elif i == 1 :
for _ in range(tmp[i]) :
op.append('-')
elif i == 2 :
for _ in range(tmp[i]) :
op.append('*')
else :
for _ in range(tmp[i]) :
op.append('/')
per = list(map(lambda x : list(x), permutations(op, sum(tmp))))
res = []
for p in per :
tmp = nums[0]
for i in enumerate(p, start = 1) :
if i[1] == '+' :
tmp += nums[i[0]]
elif i[1] == '-' :
tmp -= nums[i[0]]
elif i[1] == '*' :
tmp *= nums[i[0]]
else :
if tmp < 0 :
tmp = -(-tmp // nums[i[0]])
else :
tmp //= nums[i[0]]
res.append(tmp)
print(max(res))
print(min(res))
calc()
Author And Source
이 문제에 관하여([백준] 14888. 연산자 끼워넣기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@tldjfj123/백준-14888.-연산자-끼워넣기
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
- permutations를 통해 모든 연산자의 조합을 구함.
- for문을 돌며 각 연산자의 조합에 대해서, enumerate함수를 사용하여 하나씩 계산 후 결과를 저장하는 res배열에 넣어줌.
- res배열의 max, min값을 각각 print 함.
코드
from itertools import permutations
def calc() :
n = int(input())
nums = list(map(int, input().split()))
tmp = list(map(int, input().split()))
op = []
for i in range(len(tmp)) :
if i == 0 :
for _ in range(tmp[i]) :
op.append('+')
elif i == 1 :
for _ in range(tmp[i]) :
op.append('-')
elif i == 2 :
for _ in range(tmp[i]) :
op.append('*')
else :
for _ in range(tmp[i]) :
op.append('/')
per = list(map(lambda x : list(x), permutations(op, sum(tmp))))
res = []
for p in per :
tmp = nums[0]
for i in enumerate(p, start = 1) :
if i[1] == '+' :
tmp += nums[i[0]]
elif i[1] == '-' :
tmp -= nums[i[0]]
elif i[1] == '*' :
tmp *= nums[i[0]]
else :
if tmp < 0 :
tmp = -(-tmp // nums[i[0]])
else :
tmp //= nums[i[0]]
res.append(tmp)
print(max(res))
print(min(res))
calc()
Author And Source
이 문제에 관하여([백준] 14888. 연산자 끼워넣기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@tldjfj123/백준-14888.-연산자-끼워넣기
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from itertools import permutations
def calc() :
n = int(input())
nums = list(map(int, input().split()))
tmp = list(map(int, input().split()))
op = []
for i in range(len(tmp)) :
if i == 0 :
for _ in range(tmp[i]) :
op.append('+')
elif i == 1 :
for _ in range(tmp[i]) :
op.append('-')
elif i == 2 :
for _ in range(tmp[i]) :
op.append('*')
else :
for _ in range(tmp[i]) :
op.append('/')
per = list(map(lambda x : list(x), permutations(op, sum(tmp))))
res = []
for p in per :
tmp = nums[0]
for i in enumerate(p, start = 1) :
if i[1] == '+' :
tmp += nums[i[0]]
elif i[1] == '-' :
tmp -= nums[i[0]]
elif i[1] == '*' :
tmp *= nums[i[0]]
else :
if tmp < 0 :
tmp = -(-tmp // nums[i[0]])
else :
tmp //= nums[i[0]]
res.append(tmp)
print(max(res))
print(min(res))
calc()
Author And Source
이 문제에 관하여([백준] 14888. 연산자 끼워넣기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tldjfj123/백준-14888.-연산자-끼워넣기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)