본문 바로가기
Algorithm/Baekjoon

Baekjoon 5355 화성 수학 JAVA

by Hunveloper 2022. 6. 9.
728x90

 

5355번: 화성 수학

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

www.acmicpc.net

문제

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

입력

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

출력

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

풀이

주어진 조건에 맞추어서 문자열 비교로 연산을 하면되는 문제이다.

코드
import java.io.*;
import java.util.*;

public class Main {
	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		int n= Integer.parseInt(br.readLine());
		for(int i=0;i<n;i++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			double ans=Double.parseDouble(st.nextToken());
			while(st.hasMoreTokens()) {
				char ch=st.nextToken().charAt(0);
				if(ch=='@')
					ans*=3;
				else if(ch=='%')
					ans+=5;
				else if(ch=='#')
					ans-=7;
			}
			bw.write(String.format("%.2f", ans)+"\n");
		}
		bw.close();
	}
}

 

728x90
728x90

'Algorithm > Baekjoon' 카테고리의 다른 글

Baekjoon 1100 하얀 칸 JAVA  (0) 2022.06.09
Baekjoon 9550 아이들은 사탕을 좋아해 JAVA  (0) 2022.06.09
Baekjoon 9763 마을의 친밀도 JAVA  (0) 2022.06.09
Baekjoon 4101 크냐? JAVA  (0) 2022.06.09
Baekjoon 3613 Java vs C++ JAVA  (0) 2022.06.09

댓글