반응형
https://www.acmicpc.net/problem/8713
구현 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
두 수a와b, 가장 큰 연산의 번호를 저장할 biggest 변수를 선언하고 a,b에 수를 입력해줍니다.
📔 풀이과정
+가 가장 큰 연산이라면 0을, -면 1, *면 2, 가장 큰 수가 2개 이상이면 -1을 반환하는 함수 biggestOp를 수행합니다. 해당 결과값에 따라 정답을 출력해줍니다.
📔 정답출력
-인 값에 대해서는 항상 괄호가 붙어야 합니다. 수를 출력할 때마다 음수에 대해 괄호를 붙여주는 함수 getString을 수행한 결과를 반영해줍니다.
* 수식의 우변도 -결과값을 가질 수 있음에 주의합니다.
📕 Code
#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
int a, b, biggest;
int biggestOp(){
// + - * 순
int nums[3] = {a+b, a-b, a*b};
int maxNum = -INF;
int maxIdx;
for(int i = 0; i < 3; i++){
if(maxNum == nums[i]) return -1;
if(maxNum < nums[i])
maxIdx = i, maxNum = nums[i];
}
return maxIdx;
}
string getString(int num){
string str = to_string(num);
if(num < 0) return "(" + str + ")";
return str;
}
int main(){
cin >> a >> b;
biggest = biggestOp();
if(!biggest) cout << getString(a) << "+" << getString(b) << "=" << getString(a + b);
else if(biggest == 1) cout << getString(a) << "-" << getString(b) << "=" << getString(a - b);
else if(biggest == 2) cout << getString(a) << "*" << getString(b) << "=" << getString(a * b);
else cout << "NIE";
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 9493 : 길면 기차, 기차는 빨라, 빠른 것은 비행기 (0) | 2022.02.24 |
---|---|
(C++) - 백준(BOJ) 9299 : Math Tutoring (0) | 2022.02.23 |
(C++) - 백준(BOJ) 9298 : Ant Entrapment (0) | 2022.02.19 |
(C++) - 백준(BOJ) 8815 : Test (2) | 2022.02.18 |
(C++) - 백준(BOJ) 8574 : Ratownik (0) | 2022.02.17 |