[백준/파이썬] 13420번 사칙연산 풀이

업데이트:



문제 정보


풀이

문제

사칙연산은 덧셈, 뺄셈, 곱셈, 나눗셈으로 이루어져 있으며, 컴퓨터 프로그램에서 이를 표현하는 기호는 +, -, *, / 와 같다.

아래는 컴퓨터 프로그램에서 표현한 사칙 연산의 예제이다.

3 * 2 = 6

문제와 답이 주어졌을 때, 이를 계산하여 올바른 수식인지 계산하는 프로그램을 만들려고 한다.

만약 주어진 데이터가 3 * 2 = 6 이라면 정답으로, 3 * 2 = 7 이면 오답으로 채점을 하면 된다. 문제와 답이 주어졌을 때, 이를 채점하는 프로그램을 작성하시오.

  • 자세한 문제 및 입출력 예제는 상단의 문제 출처(백준 홈페이지)를 참조해주세요

코드

for _ in range(int(input())):
    print("correct" if eval(input().replace("=", "==")) else "wrong answer")

설명

문자열 처리 문제입니다.

일반적인 경우라면 일일히 파싱하여 조건문으로 계산을 해야겠지만, 파이썬에는 ‘메타프로그래밍’이 있습니다.

사용법은 간단합니다.

eval() 메소드는 주어진 계산식 문자열을 실제로 수행하는 역할을 합니다. 즉, "3*2" 가 입력으로 들어오면 6을 반환하는 식이죠.

이를 응용하여, 등호 = 를 비교연산자 ==으로 변경하여 수행하면 쉽게 올바른 수식인지 확인이 가능합니다.



댓글남기기