[백준 2985] 세 수 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
세 개의 정수가 주어졌을 때,
이들 사이에 하나의 사칙연산 기호와 등호를 적절히 배치하여 올바른 등식 하나를 구성하는 문제입니다.
등식의 형태는 다음 두 가지 중 하나입니다:
- 첫 번째와 두 번째 수 사이에 연산 기호를 넣고, 그 결과가 세 번째 수가 되는 경우
(예:
a + b = c
) - 두 번째와 세 번째 수 사이에 연산 기호를 넣고, 그 결과가 첫 번째 수가 되는 경우
(예:
a = b * c
)
입력으로 주어진 세 정수의 순서를 바꾸지 않고, 조건을 만족하는 등식을 출력합니다.
접근법
- 세 정수를 입력받고, 가능한 연산 조합을 순서대로 검사합니다.
- 사칙연산(
+
,-
,*
,/
)을 각각 적용한 결과가 나머지 값과 일치하는지 확인합니다. - 앞에서부터 먼저 성립하는 등식을 찾고, 조건을 만족하면 즉시 출력합니다.
- 항상 정답이 존재하는 입력만 주어지므로, 하나의 등식을 출력하면 됩니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
class Program {
static void Main() {
var input = Console.ReadLine().Split();
int a = int.Parse(input[0]);
int b = int.Parse(input[1]);
int c = int.Parse(input[2]);
if (a + b == c) Console.WriteLine($"{a}+{b}={c}");
else if (a - b == c) Console.WriteLine($"{a}-{b}={c}");
else if (a * b == c) Console.WriteLine($"{a}*{b}={c}");
else if (a / b == c) Console.WriteLine($"{a}/{b}={c}");
else if (a == b + c) Console.WriteLine($"{a}={b}+{c}");
else if (a == b - c) Console.WriteLine($"{a}={b}-{c}");
else if (a == b * c) Console.WriteLine($"{a}={b}*{c}");
else if (a == b / c) Console.WriteLine($"{a}={b}/{c}");
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int a, b, c; cin >> a >> b >> c;
if (a + b == c) cout << a << '+' << b << '=' << c;
else if (a - b == c) cout << a << '-' << b << '=' << c;
else if (a * b == c) cout << a << '*' << b << '=' << c;
else if (a / b == c) cout << a << '/' << b << '=' << c;
else if (a == b + c) cout << a << '=' << b << '+' << c;
else if (a == b - c) cout << a << '=' << b << '-' << c;
else if (a == b * c) cout << a << '=' << b << '*' << c;
else if (a == b / c) cout << a << '=' << b << '/' << c;
cout << "\n";
return 0;
}