[백준/파이썬] 13420번 사칙연산 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 13420번 사칙연산
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
사칙연산은 덧셈, 뺄셈, 곱셈, 나눗셈으로 이루어져 있으며, 컴퓨터 프로그램에서 이를 표현하는 기호는 +, -, *, / 와 같다.
아래는 컴퓨터 프로그램에서 표현한 사칙 연산의 예제이다.
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
을 반환하는 식이죠.
이를 응용하여, 등호 =
를 비교연산자 ==
으로 변경하여 수행하면 쉽게 올바른 수식인지 확인이 가능합니다.
댓글남기기