Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
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 29 30
31
Archives
Today
Total
관리 메뉴

코딩로그

[백준/BOJ/C++] 5355번 화성 수학 본문

YJ/C++

[백준/BOJ/C++] 5355번 화성 수학

Team DAON 2021. 10. 27. 16:11

[문제]

겨울 방학에 달에 다녀온 상근이는 여름 방학 때는 화성에 갔다 올 예정이다. (3996번) 화성에서는 지구와는 조금 다른 연산자 @, %, #을 사용한다. @는 3을 곱하고, %는 5를 더하며, #는 7을 빼는 연산자이다. 따라서, 화성에서는 수학 식의 가장 앞에 수가 하나 있고, 그 다음에는 연산자가 있다.

 

[입력]

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 다음 줄에는 화성 수학식이 한 줄에 하나씩 주어진다. 입력으로 주어지는 수는 정수이거나 소수 첫째 자리까지 주어지며, 0 이상 100 이하이다. 연산자는 최대 3개 주어진다.

 

[출력]

각 테스트 케이스에 대해서, 화성 수학식의 결과를 계산한 다음에, 소수점 둘째 자리까지 출력한다.

 

[Source Code]

#include <stdio.h>
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;

int main() {
	int test;
	cin >> test;
	double *arr = new double[test];

	for(int  i = 0; i < test; i++){
		double input = 0;
		string op;

		cin >> input;
		getline(cin, op);

		for(int j = 0; j < op.length(); j++){
			if(op[j] == '@')
				input *= 3;
			else if(op[j] == '%')
				input += 5;
			else if(op[j] == '#')
				input -= 7;
		}
		arr[i] = input;
	}

	for(int i = 0; i < test; i++){
		printf("%.2f\n", arr[i]);
	}
}

[결과 화면]