백준

백준 5355 화성 수학(Java)

Park DJ 2023. 1. 13. 02:32

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

 

5355번: 화성 수학

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

www.acmicpc.net


 

해석 및 팁

 


 

이 문제는 풀 때 몇 가지 주의할 점이 있다. 먼저 처음의 t를 nextInt()를 통해 입력받으면 오류가 발생한다. 오류를 해결하기 위해서는 parseInt를 통해 nextLine으로 입력받거나  nexrInt로 입력받은 후에 nextLine을 하나 출력해주면 된다. 그리고 마지막에 소수 둘째 자리까지 출력하라고 했기 때문에 .format를 활용해주면 된다.


 

Java 코드

 


import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    int t = Integer.parseInt(sc.nextLine());      // sc.nextInt를 사용하면 에러가 발생한다
  
    for(int i = 0; i < t; i++) {
      String str = sc.nextLine();
      String[] arr = str.split(" ");
      double num = Double.parseDouble(arr[0]);           //첫번째는 무조건 수가 주어진다
    
      for(int j = 1; j < arr.length; j++) {            
        if(arr[j].equals("@")) num *= 3;
        else if(arr[j].equals("%")) num += 5;
        else if(arr[j].equals("#")) num -= 7;
      }
      System.out.println(String.format("%.2f",num));      //소수점 둘째자리까지 출력한다
    }
  }  
}