728x90
문제 링크 : https://www.acmicpc.net/problem/13420
목차
1. 설명
2. 내 코드
3. 문제 풀이 해석 내용
4. 실행 결과
설명
백준 브론즈 2 문제 입니다.
문제명 : 사칙 연산
내 코드
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
std::cout.tie(NULL);
int T;
cin >> T;
while (T--)
{
long long a, b, c;
char op, eq;
cin >> a >> op >> b >> eq >> c;
bool isCorrect = false;
if (op == '+')
{
isCorrect = (a + b == c);
}
else if (op == '-')
{
isCorrect = (a - b == c);
}
else if (op == '*')
{
isCorrect = (a * b == c);
}
else if (op == '/')
{
if (b != 0 && a % b == 0)
{
isCorrect = (a / b == c);
}
}
cout << (isCorrect ? "correct" : "wrong answer") << '\n';
}
}
문제 풀이 해석 내용
테스트 케이스 수 입력
int T;
cin >> T;
T: 테스트 케이스의 수를 저장할 변수입니다.
사용자로부터 정수 T를 입력받습니다.
테스트 케이스 반복 처리
while (T--)
{
long long a, b, c;
char op, eq;
cin >> a >> op >> b >> eq >> c;
while (T--)를 통해 T만큼 반복합니다.
각 반복에서 세 개의 숫자(a, b, c)와 연산자(op), 등호(eq)를 입력받습니다.
등호(eq)는 항상 =로 입력된다고 가정합니다.
수식의 정당성 검사
bool isCorrect = false;
if (op == '+')
{
isCorrect = (a + b == c);
}
else if (op == '-')
{
isCorrect = (a - b == c);
}
else if (op == '*')
{
isCorrect = (a * b == c);
}
else if (op == '/')
{
if (b != 0 && a % b == 0)
{
isCorrect = (a / b == c);
}
}
isCorrect 변수를 초기화하여 수식의 정당성을 판단합니다.
연산자에 따라 a와 b를 연산하여 c와 비교합니다.
+, -, * 연산자는 일반적인 방식으로 수행합니다.
/ 연산자의 경우, b가 0이 아니고 a가 b로 나누어 떨어지는 경우에만 계산합니다.
결과 출력
cout << (isCorrect ? "correct" : "wrong answer") << '\n';
isCorrect가 true일 경우 "correct"를,
그렇지 않으면 "wrong answer"를 출력합니다.
실행 결과
728x90
'c++' 카테고리의 다른 글
백준 c++ 33556 문제 풀이 (0) | 2025.04.20 |
---|---|
백준 c++ 1681 문제 풀이 (0) | 2025.04.19 |
백준 c++ 10103 문제 풀이 (0) | 2025.04.15 |
백준 c++ 1157 문제 풀이 (0) | 2025.04.13 |
백준 c++ 1978 문제 풀이 (0) | 2025.04.12 |