© 2025 anveloper.dev
GitHub·LinkedIn·Contact

목차

  • 문제
  • 입력
  • 출력
  • 예제
  • 풀이
  • 코드
  • 복잡도
풀이 목록으로 돌아가기

BOJ 13420 - 사칙연산

2024-12-04
BOJ
브론즈 II
cpp
원본 문제 보기
수학
문자열
사칙연산

문제

BOJ 13420 - 사칙연산

주어진 사칙연산 수식 a op b = c가 올바른지 판별하여 correct 또는 wrong answer를 출력하라.

입력

테스트 케이스 수 T, 각 케이스마다 a op b = c 형식의 수식이 주어진다.

출력

수식이 맞으면 "correct", 틀리면 "wrong answer"를 출력한다.

예제

입력출력
2 1 + 2 = 3 4 * 3 = 11correct wrong answer

풀이

연산자에 따라 실제 계산 결과와 주어진 결과를 비교한다.

  1. 두 수, 연산자, 등호, 결과값을 입력받는다
  2. 연산자에 따라 +, -, *, / 연산을 수행한다
  3. 계산 결과와 주어진 결과가 같으면 "correct", 다르면 "wrong answer"를 출력한다

핵심 아이디어: long long 타입으로 오버플로우를 방지하며 단순 분기 처리한다.

코드

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
  long long int T;
  scanf("%lld", &T);
 
  for (int i = 0; i < T; i++)
  {
    long long int num1, num2, result;
    char cacul, equal;
    scanf("%lld %c %lld %c %lld", &num1, &cacul, &num2, &equal, &result);
 
    if (cacul == '+')
    {
      if (num1 + num2 == result)
        printf("correct\n");
      else
        printf("wrong answer\n");
    }
    else if (cacul == '-')
    {
      if (num1 - num2 == result)
        printf("correct\n");
      else
        printf("wrong answer\n");
    }
    else if (cacul == '*')
    {
      if (num1 * num2 == result)
        printf("correct\n");
      else
        printf("wrong answer\n");
    }
    else if (cacul == '/')
    {
      if (num1 / num2 == result)
        printf("correct\n");
      else
        printf("wrong answer\n");
    }
  }
}

복잡도

  • 시간: O(T)
  • 공간: O(1)