[Java] BOJ 5355 - 화성 수학

Jae Chan·2023년 1월 16일
0

Coding-Test

목록 보기
4/10
post-thumbnail

문제

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

입력 📨

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

출력 📩

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

예제 입력

3
3 @ %
10.4 # % @
8 #

예제 출력

14.00
25.20
1.00

문제 해결 ✔️

/*
 *  백준 문제 5355 : 화성 수학
 *  Site : https://www.acmicpc.net/problem/5355
 */
import java.util.*;

public class Solution_5355 {
    static void marsCalc(String str) {
        String[] arr = str.split(" ");
            float calcNum = Float.parseFloat(arr[0]); 

            for(int j = 1; j < arr.length; j++) 
            {
                switch(arr[j])
                {
                    case "@": calcNum *= 3;
                        break;
                    case "%": calcNum += 5;
                        break;
                    case "#": calcNum -= 7;
                        break;
                    default:
                        continue;
                }
            }
            System.out.println(String.format("%.2f", calcNum));
    }

   public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.nextLine();

        for(int i = 0; i < n; i++)
        {
            String input = sc.nextLine();
            marsCalc(input);
        }

        sc.close();
   }
}

해석

이 문제에서의 핵심은 parseFloat 이용 및 문자열을 공백을 기준으로 하여 split 해주고 배열을 다루는 거라고 본다! 👨‍💻

0개의 댓글