이해한 규칙으로는 연산자는 무조건 한개, 등호또한 한개이다. 또한 연산자와 등호 주변에는 띄어쓰기 처리가 되어있다. 즉 우선적으로 " = "를 기준으로 스플릿하며, 연산자는 두가지 경우의 수 즉 " - " , " + "를 if문으로 하여금 검색하여 숫자들이 리스트에 담기게 한다. 그러고 문자열을 정수로 매핑하여 계산한 pred값과 " = "로 구분 시켯을때의 리스트[1]의 즉 등호 오른쪽 결과값과 비교하여 같다면 O를 출력하고 아니면 X를 출력하는 프로시저를 제작하여 for문을 통해 등식을 받아서 O혹은 X를 출력받아 결과 리스트에 저장하여 리턴한다.
def check(epres):
epres = epres.split(' = ')
cond = epres[0]
ans = epres[1]
if ' + ' in cond:
cond = cond.split(' + ')
cond = list(map(int, cond))
pred = sum(cond)
if pred == int(ans):
return "O"
else:
return "X"
elif ' - ' in cond:
cond = cond.split(' - ')
cond = list(map(int, cond))
cond[1] = -cond[1] # 마이너스 계산
pred = sum(cond)
if pred == int(ans):
return "O"
else:
return "X"
def solution(quiz):
answer = []
for i in quiz:
answer.append(check(i))
return answer