728x90
문제
주어진 N개의 숫자를 단위환산해서 출력하기
이때, 출력포맷은 소수점 4번째 자리까지 반올림
무게 | 1.000 kg | 2.2046 lb |
0.4536 kg | 1.0000 lb | |
부피 | 1.0000 l | 0.2642 g |
3.7854 l | 1.0000 g |
문제 링크 : https://www.acmicpc.net/problem/2712
원리
1. 입력된 숫자와 단위를 구분
2. 단위에 맞춰 숫자 변환 (exchange 메소드에 위임 : 단위에 따른 switch문)
3. 출력 포맷에 맞춰 변환 (change 메소드에 위임 : 반올림 및 소수점 4번째 자리까지)
나의 코드
private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
private static int T;
private static StringTokenizer st;
public static void main(String[] args) throws IOException {
T = Integer.parseInt(br.readLine());
for(int i=0; i<T ; i++) {
st = new StringTokenizer(br.readLine(), " ");
double num = Double.parseDouble(st.nextToken());
String unit = st.nextToken();
bw.write(exchange(num, unit) + "\n");
}
bw.close();
}
private static String exchange (double num, String unit) {
String result = "";
switch (unit) {
case ("kg") :
result += change(num * 2.2046) + " lb";
break;
case ("l") :
result += change(num * 0.2642) + " g";
break;
case ("lb") :
result += change(num * 0.4536) + " kg";
break;
case ("g") :
result += change(num * 3.7854) + " l";
break;
}
return result;
}
private static String change(double num) {
return String.format("%.4f", Math.abs(num * 10000)/10000);
}
레퍼런스
소수점 출력포맷 만들기 : https://radpro.tistory.com/710
728x90
'알고리즘 저장소 (일반방식과 나만의 풀이) > JAVA' 카테고리의 다른 글
[백준] no2490: 윳놀이 (0) | 2023.09.05 |
---|---|
[백준] no5639:이진 검색 트리 (0) | 2023.09.03 |
[백준] no2476:주사위 게임 - 구현 (0) | 2023.08.30 |
[백준] no6887:Squares - 제곱근 구하기 (0) | 2023.08.28 |
[백준] no11504:바이토닉 수열 - 바이토닉 정렬(Bitonic) (0) | 2023.08.25 |