ABC79 C - Train Ticket이 풀렸다.
8375 단어 AtCoder파이썬AtCoderBeginnerContest
op 는 2 종류밖에 없는 데다,
op는 3개밖에 없다. 2 ^ 3 그래서 모든 탐색에서 여유가 있습니다.
TrainTicket.py
ABCD = input()
lisST = list(ABCD)
lisINT = list(map(lambda x:int(x),lisST))
OP =["+","-"]
#print(lisST,lisINT)
ans = ""
from itertools import product
for op1,op2,op3 in product(["+","-"],repeat=3):
#print(op1,op2,op3)
if op1 == "+":
num1=lisINT[0]+lisINT[1]
ans += lisST[0]+"+"+lisST[1]
else:
num1=lisINT[0]-lisINT[1]
ans += lisST[0]+"-"+lisST[1]
if op2 == "+":
num2=num1+lisINT[2]
ans += "+"+lisST[2]
else:
num2=num1-lisINT[2]
ans += "-"+lisST[2]
if op3 == "+":
num3=num2+lisINT[3]
ans += "+"+lisST[3]
else:
num3=num2-lisINT[3]
ans += "-"+lisST[3]
if num3 == 7:
print(ans+"=7")
break
else:
ans = ""
전부 열거는 고통이었기 때문에,
문자를 그대로 계산할 수 있는 eval() 를 사용했다.
abc79c.py
S = list(input())
from itertools import product
for op in product(["+","-"],repeat=3):
op = list(op)
num = ""
for i in range(3):
num += S[i]+op[i]
num += S[3]
if eval(num)==7:
print(num+"=7")
exit()
Reference
이 문제에 관하여(ABC79 C - Train Ticket이 풀렸다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/AKpirion/items/fed9af0c97cf76222eb6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)