Go言語で競プロの問題を解く
練習したのを貼る。
雰囲気はこんな感じ。AtCoder Contest 053 D問題の解答。言語に関しては競プロの解答が書けるために必要な知識は少ない。練習にはちょうどいいが、これくらいでは Go 言語できますって言える気がしない。
package main import ( "fmt" ) func main() { var n int fmt.Scan(&n) a := make([]int, n) for i := range a { fmt.Scan(&a[i]) } counter := make(map[int]int) for _, v := range a { counter[v]++ } evenCount := 0 for _, v := range counter { if v%2 == 0 { evenCount++ } } answer := len(counter) if evenCount%2 == 1 { answer-- } fmt.Println(answer) }