CLOSE

Recommanded Free YOUTUBE Lecture: <% selectedImage %>

### 문제

Integer 타입의 숫자 배열이 있다. 이 배열은 음수, 양수, 0을 포함 할 수 있다. 전체 배열에서 음수, 양수, 0의 비율을 소숫점 4자리의 정확도로 구하라.

### 입력 형식

1. 첫 번째 표준입력으로 배열의 갯수를 입력한다.
2. 두번째 줄은 음수, 양수, 0 숫자를 배열 만큼 입력한다. 각 숫자들은 공백문자로 구분한다.

### 출력 형식

반드시 3 줄을 출력해야 한다.
1. 양수 원소의 갯수 / 배열의 크기
2. 음수 원소의 갯수 / 배열의 크기
3. 0의 갯수 / 배열의 크기

### 입력 예제

6
-4 3 -9 0 4 1         

### 출력 예제

0.500000
0.333333
0.166667

### 설명

배열에서 양수는 3, 음수는 2, 0은 1이다. 따라서 이다.

### 풀이

#### golang

package main

import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)

func main() {
n, _ := strconv.Atoi(string(line))

nums := strings.Split(string(line), " ")
count := []int{0, 0, 0}
for i := 0; i < n; i++ {
v, _ := strconv.Atoi(nums[i])
switch {
case v > 0:
count++
case v < 0:
count++
case v == 0:
count++
}
}
for _, v := range count {
fmt.Printf("%0.5f\n", float64(v)/float64(n))
}
}
1. 크기가 3인 배열을 만든다. 0번째 값은 양의 정수, 1번째 값은 음의정수, 0번째 값은 0을 카운트한다. go언어의 경우 변수를 선언하면 변수의 타입에따라서 기본 값이 설정된다. intger의 경우 0이다. 따라서 굳이 초기화 할 필요 없다.
2. 배열의 크기만큼 루프를 돌린다.
3. 입력값을 비교해서 카운트 한다.
4. 카운트 한 값을 출력한다. float64로 형변환해서 출력한다.

#### python

#!/usr/bin/python
import sys

def minMax(n, ar):
count=[0,0,0]
for v in ar:
if int(v) > 0:
count+=1
elif int(v) < 0:
count+=1
else:
count+=1
for v in count:
print('%0.5f' % (v/float(n)))

minMax(n, ar)