본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1117 : 두 실수의 곱

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1097 : [기초-2차원배열] 성실한 개미 (자바, JAVA)입니다.

intro

Question

문제 설명

입력

두 실수를 입력받는다.

출력

두 실수의 곱을 소수 둘째자리까지 출력한다.

예시

  • 입력 : 1.23 4.56
  • 출력 : 5.61

Solution (풀이)

  • 풀이 1 : 메모리 14676, 시간 197
public class Answer1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Double number1 = sc.nextDouble();
        Double number2 = sc.nextDouble();

        // 입력 받은 두 실수의 곱
        Double multiple = number1*number2;

        // 소수 둘째자리 까지 표현하기 위해
        multiple = (double)Math.round(multiple*100);
        multiple /= 100; 

        System.out.println(multiple);
        sc.close();
    }
}
  • 풀이 2 : 메모리 14344, 시간 162
public class Answer2 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        Double number1 = Double.parseDouble(st.nextToken());
        Double number2 = Double.parseDouble(st.nextToken());

        // 소수 줄재짜리까지 표현하기 위한 format
        bw.append(String.format("%.2f", number1*number2));
        bw.flush(); // 출력
        bw.close();
        br.close();
    }
}
  • 풀이 3 : 메모리 14076, 시간 110
public class Answer3 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        StringBuilder sb = new StringBuilder();

        Double number1 = Double.parseDouble(st.nextToken());
        Double number2 = Double.parseDouble(st.nextToken());

        // 소수 줄재짜리까지 표현하기 위한 format
        sb.append(String.format("%.2f", number1*number2));
        System.out.print(sb);
        br.close();
    }
}

이 문제는 총 두가지 방법으로 풀이하였다.

2번과 3번은 출력의 방법만 변경했는데, 속도가 확 줄어든 것을 볼 수 있다.

사실 이 문제의 1등분은 도데체 어떻게 그렇게 빠른 속도로 풀었는지 코드를 한번 보고싶다..ㅠㅠ

Ranking(순위)

반응형