준호씨의 블로그

hackerrank - Plus Minus - Python3 본문

개발이야기/PS - Problem Solving, 알고리즘

hackerrank - Plus Minus - Python3

준호씨 2020. 5. 2. 16:45
반응형

 

문제: https://www.hackerrank.com/challenges/plus-minus/problem

정수 배열이 있습니다. 정수, 음수, 0인 요소의 분수를 계산하시오. 각 분수의 소수점 값을 한 줄씩 출력하시오.

Note: 정밀성 문제가 있습니다. 테스트 케이스는 소수점 이하 6자리이지만 최대 10^-4의 절대 오류는 허용합니다.

여기 까지만 문제를 읽으면 조금 이해가 가지 않습니다. 다음 내용을 계속 읽어 봅니다.

arr = [1,1,0,-1,-1]이 있으면 5개의 요소가 있습니다. 두 개는 두 개는 양수, 두 개는 음수, 하나는 0입니다. 2/5 = 0.400000, 2/5 = 0.400000, 1/5 = 0.200000이고 다음과 같이 출력됩니다.

0.400000
0.400000
0.200000

즉, 배열에서 양수, 음수, 0의 개수를 총 개수로 나눈 값을 구하는 문제입니다.

Sample Input

6
-4 3 -9 0 4 1

Sample Output

0.500000
0.333333
0.166667

양수 3개, 음수 2개, 0이 1개 해서 3/6 = 0.500000, 2/6 = 0.333333, 1/6 = 0.166667입니다.

코드 템플릿입니다.

#!/bin/python3

import math
import os
import random
import re
import sys

# Complete the plusMinus function below.
def plusMinus(arr):

if __name__ == '__main__':
    n = int(input())

    arr = list(map(int, input().rstrip().split()))

    plusMinus(arr)

plusMinus함수를 완성합니다.

def plusMinus(arr):
    len_arr = len(arr)
    n = 0
    z = 0
    p = 0

    for num in arr:
        if num < 0:
            n += 1
        elif num == 0:
            z += 1
        else:
            p += 1

    print(p / len_arr)
    print(n / len_arr)
    print(z / len_arr)

 

양수, 음수, 0의 개수를 구하고 총길이로 나눈 값을 출력합니다.

반응형
Comments