Integer 타입의 숫자 배열이 있다. 이 배열은 음수, 양수, 0을 포함 할 수 있다. 전체 배열에서 음수, 양수, 0의 비율을 소숫점 4자리의 정확도로 구하라.
입력 형식
첫 번째 표준입력으로 배열의 갯수를 입력한다.
두번째 줄은 음수, 양수, 0 숫자를 배열 만큼 입력한다. 각 숫자들은 공백문자로 구분한다.
출력 형식
반드시 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() {
reader := bufio.NewReader(os.Stdin)
line, _, _ := reader.ReadLine()
n, _ := strconv.Atoi(string(line))
line, _, _ = reader.ReadLine()
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[0]++
case v < 0:
count[1]++
case v == 0:
count[2]++
}
}
for _, v := range count {
fmt.Printf("%0.5f\n", float64(v)/float64(n))
}
}
크기가 3인 배열을 만든다. 0번째 값은 양의 정수, 1번째 값은 음의정수, 0번째 값은 0을 카운트한다. go언어의 경우 변수를 선언하면 변수의 타입에따라서 기본 값이 설정된다. intger의 경우 0이다. 따라서 굳이 초기화 할 필요 없다.
배열의 크기만큼 루프를 돌린다.
입력값을 비교해서 카운트 한다.
카운트 한 값을 출력한다. float64로 형변환해서 출력한다.
python
#!/usr/bin/python
import sys
def minMax(n, ar):
count=[0,0,0]
for v in ar:
if int(v) > 0:
count[0]+=1
elif int(v) < 0:
count[1]+=1
else:
count[2]+=1
for v in count:
print('%0.5f' % (v/float(n)))
n = sys.stdin.readline()
a = sys.stdin.readline()
ar = a.split(' ')
minMax(n, ar)
문제
입력 형식
출력 형식
입력 예제
출력 예제
설명
풀이
golang
python
Recent Posts
Archive Posts
Tags