[백준 5656] 비교 연산자 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
두 정수와 하나의 비교 연산자가 주어졌을 때, 그 조건이 참인지 거짓인지를 판별하는 단순한 시뮬레이션 문제입니다.
- 입력은 반복적으로 주어지며, 각 줄마다
정수1
,연산자
,정수2
의 형태로 구성됩니다. - 입력의 연산자 부분이 문자
E
라면 시뮬레이션을 종료합니다. - 사용 가능한 연산자는 다음과 같습니다:
>
,>=
,<
,<=
,==
,!=
- 각 비교 연산의 결과가 참이면
true
, 거짓이면false
를 출력합니다. - 출력 형식은
"Case x: 결과"
형태이며,x
는1
부터 시작하는 케이스 번호입니다.
접근법
- 반복문을 통해 계속해서 입력을 읽어들입니다.
- 각 줄에서 정수 하나, 문자열 연산자, 정수 하나를 차례로 읽습니다.
- 연산자가
E
인 경우 반복문을 종료합니다. - 그 외에는 각각의 연산자에 따라 조건식을 판단하고 결과를 출력합니다.
- 출력 형식
"Case x: true/false"
를 맞추기 위해 케이스 번호를1
부터 증가시키며 사용합니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
class Program {
static void Main() {
int caseNum = 1;
while (true) {
var input = Console.ReadLine().Split();
int l = int.Parse(input[0]);
string op = input[1];
int r = int.Parse(input[2]);
if (op == "E") break;
bool result = op switch {
">" => l > r,
">=" => l >= r,
"<" => l < r,
"<=" => l <= r,
"==" => l == r,
"!=" => l != r,
_ => false
};
Console.WriteLine($"Case {caseNum++}: {(result ? "true" : "false")}");
}
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int caseNum = 1;
while (true) {
int l, r; string op;
cin >> l >> op >> r;
if (op == "E") break;
bool result;
if (op == ">") result = l > r;
else if (op == ">=") result = l >= r;
else if (op == "<") result = l < r;
else if (op == "<=") result = l <= r;
else if (op == "==") result = l == r;
else if (op == "!=") result = l != r;
cout << "Case " << caseNum++ << ": " << (result ? "true" : "false") << "\n";
}
return 0;
}