2023. 1. 27. 12:52ㆍJava/coding test
Plus Minus
Given an array of integers, calculate the ratios of its elements that are positive, negative, and zero. Print the decimal value of each fraction on a new line with places after the decimal.
Note: This challenge introduces precision problems. The test cases are scaled to six decimal places, though answers with absolute error of up to are acceptable.
Example
arr = [1, 1, 0, -1, -1]
There are n = 5
elements, two positive, two negative and one zero. Their ratios are = 0.400000, and = 0.400000 and = 0.200000. Results are printed as:
0.400000 0.400000 0.200000
Function Description
Complete the plusMinus function in the editor below.
plusMinus has the following parameter(s):
- int arr[n]: an array of integers
Print the ratios of positive, negative and zero values in the array. Each value should be printed on a separate line with digits after the decimal. The function should not return a value.
Input Format
The first line contains an integer, , the size of the array.
The second line contains space-separated integers that describe .
Constraints
Output Format
Print the following 3 lines, each to 6 decimals:
- proportion of positive values
- proportion of negative values
- proportion of zeros
Sample Input
STDIN Function ----- -------- 6 arr[] size n = 6 -4 3 -9 0 4 1 arr = [-4, 3, -9, 0, 4, 1]
Sample Output
0.500000 0.333333 0.166667
Explanation
There are 3 positive numbers, 2 negative numbers, and 1 zero in the array.
The proportions of occurrence are positive: = 0.500000, negative: = 0.333333 and zeros: = 0.166667.
정수 배열이 주어집니다.
양수, 음수, 0의 각 비율을 출력하는 코드를 작성하세요.
각각은 한줄씩 소수점 이하 6자리까지 표시하여 출력합니다.
six decimal places: 소수점 이하 6자리
n은 0보다 크니 리스트가 비어있는 경우는 고려하지 않아도 됩니다.
static void plusMinus(List<Integer> arr) { double totalSize = (double) arr.size(); List<Integer> positives = new ArrayList<>(); List<Integer> negatives = new ArrayList<>(); List<Integer> zeros = new ArrayList<>(); arr.forEach(i -> { if (i > 0) { positives.add(i); } else if (i < 0) { negatives.add(i); } else { zeros.add(i); } }); print(positives.size()/totalSize); print(negatives.size()/totalSize); print(zeros.size()/totalSize); } static void print(double d) { System.out.printf("%.6f%n", d); }
'Java > coding test' 카테고리의 다른 글
[HackerRank - Java] Day 1 - 3. Time Conversion (0) | 2023.01.27 |
---|---|
[HackerRank - Java] Day 1 - 2. Mini-Max Sum (0) | 2023.01.27 |
[Codility - Java] 10. Prime and composite numbers - 1. CountFactors (0) | 2023.01.11 |
[Codility - Java] 8. Leader - 2. EquiLeader (0) | 2023.01.10 |
[Codility - Java] 4. Counting Elements - 4. MissingInteger (0) | 2023.01.09 |