Skip to content

Commit f2a36c5

Browse files
committed
Add silvers
1 parent d651274 commit f2a36c5

6 files changed

Lines changed: 202 additions & 20 deletions

File tree

boj/1037/main/main.go

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,29 @@ package main
22

33
import (
44
"fmt"
5+
"math"
56
"sort"
67
)
78

89
func main() {
910
var n int
10-
var y int
11-
var big uint64 = 1
11+
var y uint64
1212
fmt.Scan(&n)
13-
a :=1
1413
var s []int
15-
if n == 0 {
16-
fmt.Println(1)
17-
return
18-
}
19-
if n == 1{
20-
fmt.Scan(&y)
21-
fmt.Println(y)
22-
}
14+
15+
min := uint64(math.MaxUint32)
16+
max := uint64(0)
2317
for i := 0; i < n; i++ {
2418
fmt.Scan(&y)
25-
big *= uint64(y)
26-
s = append(s, y)
19+
if y < min {
20+
min = y
21+
}
22+
if max < y {
23+
max = y
24+
}
2725
}
2826
sort.Ints(s)
29-
mostBig := uint64(s[len(s)-1])
30-
var i uint64 = mostBig
31-
var candis []uint64
32-
for ; i <= big; i += mostBig {
33-
candis = append(candis, mostBig)
34-
}
3527

36-
fmt.Println(a)
28+
29+
fmt.Println(min * max)
3730
}

boj/10610/main.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package main
2+
3+
import (
4+
"bufio"
5+
"fmt"
6+
"os"
7+
"sort"
8+
)
9+
var reader = bufio.NewReaderSize(os.Stdin, 4000004)
10+
var writer = bufio.NewWriter(os.Stdout)
11+
12+
func main() {
13+
defer writer.Flush()
14+
var n string
15+
fmt.Fscan(reader, &n)
16+
include0 := false
17+
var sum = 0
18+
var ns []int
19+
for _, ch := range n {
20+
a := int(ch) - '0'
21+
if a == 0 {
22+
include0 = true
23+
}
24+
ns = append(ns, a)
25+
sum += a
26+
}
27+
if !include0 || sum % 3 != 0 {
28+
fmt.Fprint(writer, -1)
29+
return
30+
}
31+
sort.Ints(ns)
32+
for i, j := 0, len(ns)-1; i < j; i, j = i+1, j-1 {
33+
ns[i], ns[j] = ns[j], ns[i]
34+
}
35+
36+
for _, i := range ns {
37+
fmt.Fprint(writer, i)
38+
}
39+
}

boj/1094/main.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
var x int
7+
fmt.Scanf("%d", &x)
8+
9+
if x == 64 {
10+
fmt.Println(1)
11+
return
12+
}
13+
ans := 0
14+
a := 32
15+
for x > 0 {
16+
if x >= a {
17+
x -= a
18+
ans++
19+
}
20+
a /= 2
21+
}
22+
fmt.Println(ans)
23+
}

boj/11004/main.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package main
2+
3+
import (
4+
"bufio"
5+
"fmt"
6+
"os"
7+
"sort"
8+
"strconv"
9+
)
10+
var sc = bufio.NewScanner(os.Stdin)
11+
var writer = bufio.NewWriter(os.Stdout)
12+
func main() {
13+
defer writer.Flush()
14+
var n, k int
15+
sc.Split(bufio.ScanWords)
16+
sc.Scan()
17+
n, _ = strconv.Atoi(sc.Text())
18+
sc.Scan()
19+
k, _ = strconv.Atoi(sc.Text())
20+
21+
var ns []int
22+
var a int
23+
for i := 0; i < n; i++ {
24+
sc.Scan()
25+
a, _ = strconv.Atoi(sc.Text())
26+
ns = append(ns, a)
27+
}
28+
sort.Ints(ns)
29+
fmt.Println(ns[k-1])
30+
}

boj/1475/main/main.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
var s string
7+
fmt.Scanln(&s)
8+
ans := 0
9+
cards := make([]int, 9)
10+
for _, c := range s {
11+
n := c - '0'
12+
if n == 9 {
13+
n = 6
14+
}
15+
if cards[n] > 0 {
16+
cards[n] -= 1
17+
continue
18+
}
19+
for i := range cards {
20+
cards[i]++
21+
}
22+
ans += 1
23+
cards[6]++
24+
cards[n]--
25+
}
26+
fmt.Println(ans)
27+
}

boj/1655/main.go

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package main
2+
3+
import (
4+
"bufio"
5+
"container/heap"
6+
"fmt"
7+
"os"
8+
)
9+
10+
type IntMinHeap []int
11+
12+
func (h IntMinHeap) Len() int { return len(h) }
13+
func (h IntMinHeap) Less(i, j int) bool { return h[i] < h[j] }
14+
func (h IntMinHeap) Swap(i, j int) { h[i], h[j] = h[j], h[i] }
15+
16+
func (h *IntMinHeap) Push(x interface{}) {
17+
*h = append(*h, x.(int))
18+
}
19+
20+
func (h *IntMinHeap) Pop() interface{} {
21+
old := *h
22+
n := len(old)
23+
x := old[n-1]
24+
*h = old[0 : n-1]
25+
return x
26+
}
27+
28+
func (h *IntMinHeap) Last() int {
29+
n := len(*h)
30+
x := (*h)[n-1]
31+
return x
32+
}
33+
34+
35+
func (h *IntMinHeap) Top() int {
36+
x := (*h)[0]
37+
return x
38+
}
39+
40+
var reader = bufio.NewReaderSize(os.Stdin, 4000004)
41+
var writer = bufio.NewWriter(os.Stdout)
42+
43+
func main() {
44+
defer writer.Flush()
45+
var count int
46+
fmt.Fscanln(reader, &count)
47+
minHeap := &IntMinHeap{}
48+
maxHeap := &IntMinHeap{}
49+
heap.Init(minHeap)
50+
heap.Init(maxHeap)
51+
for i := 0; i < count; i++ {
52+
var n int
53+
fmt.Fscanln(reader, &n)
54+
if maxHeap.Len() == minHeap.Len() {
55+
heap.Push(maxHeap, -n)
56+
} else {
57+
heap.Push(minHeap, n)
58+
}
59+
if i >= 1 && -maxHeap.Top() > minHeap.Top() {
60+
// swap last
61+
n = -heap.Pop(maxHeap).(int)
62+
temp := heap.Pop(minHeap).(int)
63+
64+
heap.Push(minHeap, n)
65+
heap.Push(maxHeap, -temp)
66+
}
67+
68+
fmt.Fprintln(writer, -maxHeap.Top())
69+
}
70+
}

0 commit comments

Comments
 (0)