Programmers_LV0_OX퀴즈

jkky98·2023년 2월 26일
0

CodingTraining

목록 보기
17/39

이해한 규칙으로는 연산자는 무조건 한개, 등호또한 한개이다. 또한 연산자와 등호 주변에는 띄어쓰기 처리가 되어있다. 즉 우선적으로 " = "를 기준으로 스플릿하며, 연산자는 두가지 경우의 수 즉 " - " , " + "를 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
profile
기록은 귀찮지만 머리와 db가 연결되어 있지 않아 슬피 존재하는 blog

0개의 댓글