내가 생각했을때 문제에서 원하는부분
첫째 줄에 테스트 케이스의 개수가 주어진다.
각 테스트 케이스는 음이 아닌 정수 다섯 개(A B C D E)로 이루어져 있다.
A: 필요한 블래스터 라이플의 개수
B: 필요한 시각 센서의 개수
C: 필요한 청각 센서의 개수
D: 필요한 팔의 수
E: 필요한 다리의 수
각 테스트 케이스 마다, 입력으로 주어진 부품을 모두 구매하는데 필요한 비용을 소수점 둘째 자리까지 출력한다.
달러 표시도 출력해야 한다.
정답은 1억보다 작거나 같다.
내가 이 문제를 보고 생각해본 부분
먼저 입력을 읽어오기 위한 BufferedReader와 금액을 소수점 둘째 자리까지 정확히 보여주기 위한 DecimalFormat을 정의해준다.
각 부품의 가격도 미리 정해둔다.
테스트 케이스 처리: 몇 번 계산해야 할지(테스트 케이스 개수) 입력을 받아온다.
그리고 그 횟수만큼 아래 과정을 반복한다.
부품 개수 읽기: 각 반복마다 필요한 5가지 부품의 개수를 입력으로 받아온다.
가격 계산: 입력받은 각 부품의 개수에 해당하는 부품 가격을 곱하고, 이 값들을 모두 더해서 총 필요한 비용을 계산한다.
결과 출력: 계산된 총 비용 앞에 달러 기호($)를 붙이고, 소수점 둘째 자리까지 맞춰서 화면에 보여준다.
코드로 구현
package baekjoon.baekjoon_28;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.text.DecimalFormat;
// 백준 5361번 문제
public class Main1020 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
DecimalFormat df = new DecimalFormat("0.00"); // 소수점 둘째 자리까지 출력 형식 지정
int testCases = Integer.parseInt(br.readLine()); // 테스트 케이스 개수 읽기
// 부품 가격 설정
final double blasterRiflePrice = 350.34;
final double visualSensorPrice = 230.90;
final double auditorySensorPrice = 190.55;
final double armPrice = 125.30;
final double legPrice = 180.90;
for (int i = 0; i < testCases; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
// 각 부품의 개수 읽기
int blasterRifleCount = Integer.parseInt(st.nextToken());
int visualSensorCount = Integer.parseInt(st.nextToken());
int auditorySensorCount = Integer.parseInt(st.nextToken());
int armCount = Integer.parseInt(st.nextToken());
int legCount = Integer.parseInt(st.nextToken());
// 총 비용 계산
double totalCost = (blasterRifleCount * blasterRiflePrice) +
(visualSensorCount * visualSensorPrice) +
(auditorySensorCount * auditorySensorPrice) +
(armCount * armPrice) +
(legCount * legPrice);
// 결과 출력 (달러 기호와 함께 소수점 둘째 자리까지)
System.out.println("$" + df.format(totalCost));
}
br.close(); // BufferedReader 닫기
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.