본문 바로가기

백준/C++

[BaeKJoon/C++] 백준 5355 c++ 화성 수학

반응형

https://www.acmicpc.net/problem/5355

 

5355번: 화성 수학

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

www.acmicpc.net

 

문제

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

입력

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

출력

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

예제 입력 1 복사

3
3 @ %
10.4 # % @
8 #

예제 출력 1 복사

14.00
25.20
1.00

 

코드

#include <iostream>
#include <string>
#include <iomanip>
 
using namespace std;
 
int main() {
 
    int test;
    cin>>test;
 
    double n;
 
    char ch;
 
    for(int i=0; i<test; i++){
    cin>>n;
 
    while(1){
        cin.get(ch);
        if(ch=='\n'){
            break;
        }
        if(ch=='@'){
            n*=3;
        }
 
        if(ch=='%'){
            n+=5;
        }
 
        if(ch=='#'){
            n-=7;
        }
    
    }
    cout<<fixed;
    cout.precision(2);
    cout<<n<<"\n";
    }
}
cs
 

풀이

- enter를 치면 하나의 case가 끝나는 코드

 

cout<<fixed; -> 소수점 자릿수 고정

cout.precision(n); -> n번째 소수점 자리까지 표현

#include <iomanip> 헤더파일을 꼭 포함하여야 한다.

 

 

반응형