티스토리 뷰

Java 코딩테스트

[hackerrank] plus minus

HR대장 2020. 2. 28. 13:50
728x90

배열에서 양수, 음수, 0 숫자를 카운트 한 후, 배열의 길이로 나누기 하여,

소수점 6재 짜리까지 표기하는 문제입니다.

 

특이한 점은, 소수점 이하 표기시 6자리를 무조건 리턴해야 하며, 0으로 대체하기 위해  formatter를 사용하였습니다.

 

몫 구하기 예

 

         finalplus =cntplus /(double)endnum;
         finalminus = cntminus/(double)endnum;
         finalzero = cntzero/(double)endnum;

 

formatter 구현

 

         DecimalFormat formatter = new DecimalFormat("#,##0.000000");

 

import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;

public class Solution {

    // Complete the plusMinus function below.
    static void plusMinus(int[] arr) {

        int startnum = 0;
        int endnum = arr.length;
        int cntzero = 0;
        int cntplus = 0;
        int cntminus = 0;

        double finalzero ;
        double finalplus ;
        double finalminus ;

        DecimalFormat formatter = new DecimalFormat("#,##0.000000");

        for (int i=startnum; i<endnum  ; i++){

            if( arr[i] == 0){
                cntzero = cntzero + 1;
            }

            if( arr[i] > 0){
                cntplus = cntplus + 1;
            }

            if( arr[i] < 0){
                cntminus = cntminus + 1;
            }
           

        }


         finalplus =cntplus /(double)endnum;
         finalminus = cntminus/(double)endnum;
         finalzero = cntzero/(double)endnum;

            System.out.println(formatter.format(finalplus));
            System.out.println(formatter.format(finalminus));
            System.out.println(formatter.format(finalzero));

    }

    private static final Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        int n = scanner.nextInt();
        scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");

        int[] arr = new int[n];

        String[] arrItems = scanner.nextLine().split(" ");
        scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");

        for (int i = 0; i < n; i++) {
            int arrItem = Integer.parseInt(arrItems[i]);
            arr[i] = arrItem;
        }

        plusMinus(arr);

        scanner.close();
    }
}
728x90

'Java 코딩테스트' 카테고리의 다른 글

[hackerrank] Grading Students  (0) 2020.03.03
[hackerrank] Birthday Cake Candles  (0) 2020.02.27
[hackerrank] Diagonal Difference  (0) 2020.02.26
[hackerrank] min max sum  (0) 2020.02.25
coding practice for KaKao  (0) 2020.02.25
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함