티스토리 뷰
문제
풀이
package main
import (
"bufio"
"fmt"
"math"
"os"
"sort"
)
func main() {
var n, sum, modeCnt int
var max = -4000
var min = 4000
var counts = make([]int, 8001)
var modes []int
reader := bufio.NewReader(os.Stdin)
fmt.Fscanln(reader, &n)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var numbers = make([]int, n)
for i := 0; i < n; i++ {
fmt.Fscanln(reader, &numbers[i])
sum += numbers[i]
if min > numbers[i] {
min = numbers[i]
}
if max < numbers[i] {
max = numbers[i]
}
var idx = numbers[i] + 4000
counts[idx]++
if modeCnt < counts[idx] {
modes = []int{numbers[i]}
modeCnt = counts[idx]
} else if modeCnt == counts[idx] {
modes = append(modes, numbers[i])
}
}
sort.Ints(numbers)
sort.Ints(modes)
fmt.Fprintln(writer, math.Round(float64(sum)/float64(n)))
fmt.Fprintln(writer, numbers[n/2])
if len(modes) > 1 {
fmt.Fprintln(writer, modes[1])
} else {
fmt.Fprintln(writer, modes[0])
}
fmt.Fprintln(writer, max-min)
}
728x90
'dev > algorithm' 카테고리의 다른 글
BOJ / 11650번 / 좌표 정렬하기 [Go] (0) | 2020.07.13 |
---|---|
BOJ / 1427번 / 소트인사이드 [Golang] (0) | 2020.07.12 |
BOJ / 10989번 / 수 정렬하기 3 [Golang] (0) | 2020.06.28 |
BOJ / 2751번 / 수 정렬하기 2 [Golang] (0) | 2020.06.27 |
BOJ / 2750번 / 수 정렬하기 [Golang] (0) | 2020.06.26 |
댓글