HackerRank - 1 Week Preparation Kit - Day1 - Plus Minus
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 6 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 0.0001 are acceptable.
Example
arr = [1, 1, 0, -1, -1]
There are n=5 elements, two positive, two negative and one zero. Their ratios are 2/5 = 0.400000, 2/5 = 0.400000, and 1/5 = 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
Print the ratios of positive, negative and zero values in the array. Each value should be printed on a separate line with 6 digits after the decimal. The function should not return a value.
Input Format
The first line contains an integer, n, the size of the array.
The second line contains n space-separated integers that describe arr[n].
Constraints
0 < n <= 100
-100 <= arr[i] <= 100
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: 3/6 = 0.500000, negative: 2/6 = 0.333333 and zeros: 1/6 = 0,166667.
import math
import os
import random
import re
import sys
#
# Complete the 'plusMinus' function below.
#
# The function accepts INTEGER_ARRAY arr as parameter.
#
def plusMinus(arr):
# Write your code here
pos = 0
nag = 0
zero = 0
for i in arr:
if i > 0:
pos += 1
elif i < 0:
nag += 1
else:
zero += 1
print("{: .6f}\n{: .6f}\n{: 6f}".format(pos / len(arr), nag / len(arr), zero / len(arr)))
if __name__ == '__main__':
n = int(input().strip())
arr = list(map(int, input().rstrip().split()))
plusMinus(arr)
1일차라 그런지 생각보다 쉽다. 굿
'알고리즘 > HackerRank' 카테고리의 다른 글
[HackerRank] Diagonal Difference (0) | 2023.06.13 |
---|---|
[HackerRank] Lonely Integer (0) | 2023.06.13 |
[HackerRank] Time Conversion (endswitch, zfill 메소드/테스트 케이스) (0) | 2023.06.12 |
[HackerRank] Mini-Max Sum (0) | 2023.06.12 |
[HackerRank] 해커랭크 코딩테스트 준비 (0) | 2023.06.12 |