Skip to content

Commit af85d18

Browse files
committed
Add silver
1 parent 4587834 commit af85d18

8 files changed

Lines changed: 251 additions & 0 deletions

File tree

boj/1010/main/main.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"math/big"
6+
)
7+
8+
func fac(n big.Int, lim big.Int) *big.Int {
9+
var m = new(big.Int)
10+
if n.Cmp(&lim) <= 0 {
11+
return m.SetInt64(int64(1))
12+
13+
}
14+
m.SetInt64(int64(1))
15+
m = n.Sub(&n, m)
16+
return n.Mul(&n, fac(*m, lim))
17+
}
18+
19+
func main() {
20+
var t int
21+
fmt.Scanf("%d", &t)
22+
for i := 0; i < t; i++ {
23+
var a, b big.Int
24+
fmt.Scanf("%d %d", &a, &b)
25+
fmt.Println(fac(b, a))
26+
var lim = new(big.Int)
27+
lim = lim.SetInt64(int64(1))
28+
fmt.Println(lim.Div(fac(b, a), fac(a, *lim)).Text(10))
29+
30+
}
31+
}

boj/10845/main/main.go

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package main
2+
3+
import (
4+
"bufio"
5+
"fmt"
6+
"os"
7+
"strconv"
8+
"strings"
9+
)
10+
11+
var scanner = bufio.NewScanner(os.Stdin)
12+
var writer = bufio.NewWriter(os.Stdout)
13+
14+
func main() {
15+
defer writer.Flush()
16+
var t int
17+
scanner.Scan()
18+
t, _ = strconv.Atoi(scanner.Text())
19+
var q []int
20+
for t != 0 {
21+
t--
22+
var s string
23+
var i int
24+
scanner.Scan()
25+
s = scanner.Text()
26+
pre := s[:2]
27+
if pre == "pu" {
28+
ss := strings.Split(s, " ")
29+
i, _ = strconv.Atoi(ss[1])
30+
q = append(q, i)
31+
}
32+
if pre == "po" {
33+
if len(q) == 0 {
34+
fmt.Fprintln(writer, -1)
35+
} else {
36+
fmt.Fprintln(writer, q[0])
37+
q = q[1:]
38+
}
39+
}
40+
if pre == "si" {
41+
fmt.Fprintln(writer, len(q))
42+
}
43+
if pre == "em" {
44+
if len(q) == 0 {
45+
fmt.Fprintln(writer, 1)
46+
} else {
47+
fmt.Fprintln(writer, 0)
48+
}
49+
}
50+
if pre == "fr" {
51+
if len(q) == 0 {
52+
fmt.Fprintln(writer, -1)
53+
} else {
54+
fmt.Fprintln(writer, q[0])
55+
}
56+
}
57+
if pre == "ba" {
58+
if len(q) == 0 {
59+
fmt.Fprintln(writer, -1)
60+
} else {
61+
fmt.Fprintln(writer, q[len(q)-1])
62+
}
63+
}
64+
}
65+
}

boj/11050/main/main.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
var n, k int
7+
fmt.Scanf("%d %d", &n, &k)
8+
if k == 0 {
9+
fmt.Printf("%d", 1)
10+
return
11+
}
12+
nPac := 1
13+
for i := 1; i <= n; i++ {
14+
nPac *= i
15+
}
16+
kPac := 1
17+
for i := 1; i <= k; i++ {
18+
kPac *= i
19+
}
20+
nMinusKPac := 1
21+
for i := 1; i <= n-k; i++ {
22+
nMinusKPac *= i
23+
}
24+
fmt.Printf("%d", nPac/(kPac*nMinusKPac))
25+
}

boj/1158/main/main.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
var k, n int
7+
fmt.Scanf("%d %d", &n, &k)
8+
killed := make([]int, n)
9+
for i := range killed {
10+
killed[i] = i + 1
11+
}
12+
i := k - 1
13+
fmt.Printf("<")
14+
for len(killed) != 0 {
15+
fmt.Printf("%d", killed[i])
16+
if len(killed) != 1 {
17+
fmt.Printf(", ")
18+
} else {
19+
break
20+
}
21+
if len(killed) == i-1 {
22+
killed = killed[:i]
23+
} else {
24+
killed = append(killed[:i], killed[i+1:]...)
25+
}
26+
27+
i += k - 1
28+
i %= len(killed)
29+
}
30+
fmt.Printf(">")
31+
}

boj/1934/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 gcd(n int, m int) int {
6+
if n > m {
7+
n, m = m, n
8+
}
9+
if n == 0 {
10+
return m
11+
}
12+
if m%n == 0 {
13+
return n
14+
}
15+
return gcd(n, m%n)
16+
}
17+
18+
func main() {
19+
var t int
20+
fmt.Scanf("%d", &t)
21+
for i := 0; i < t; i++ {
22+
var n, m int
23+
fmt.Scanf("%d %d", &n, &m)
24+
var g = gcd(n, m)
25+
fmt.Println(n * m / g)
26+
}
27+
}

boj/2167/main/main.go

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package main
2+
3+
import (
4+
"bufio"
5+
"fmt"
6+
"os"
7+
)
8+
9+
var reader = bufio.NewReader(os.Stdin)
10+
var writer = bufio.NewWriter(os.Stdout)
11+
12+
func main() {
13+
defer writer.Flush()
14+
var n, m int
15+
fmt.Fscan(reader, &n, &m)
16+
17+
arr := make([][]int, n)
18+
19+
for i := 0; i < n; i++ {
20+
arr[i] = make([]int, m)
21+
for j := 0; j < m; j++ {
22+
var num int
23+
fmt.Fscan(reader, &num)
24+
arr[i][j] = num
25+
}
26+
}
27+
28+
var k int
29+
fmt.Fscan(reader, &k)
30+
for i := 0; i < k; i++ {
31+
var x1, y1, x2, y2 int
32+
fmt.Fscan(reader, &x1, &y1, &x2, &y2)
33+
var sum int
34+
for j := x1 - 1; j < x2; j++ {
35+
for l := y1 - 1; l < y2; l++ {
36+
sum += arr[j][l]
37+
}
38+
}
39+
fmt.Fprintf(writer, "%d\n", sum)
40+
}
41+
}

boj/9012/main/main.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
var t int
7+
fmt.Scanf("%d", &t)
8+
for t != 0 {
9+
t--
10+
var s string
11+
fmt.Scanln(&s)
12+
var stack int
13+
var yes = true
14+
for _, a := range s {
15+
if a == '(' {
16+
stack++
17+
continue
18+
}
19+
if stack == 0 {
20+
yes = false
21+
break
22+
}
23+
stack--
24+
}
25+
if yes && stack == 0 {
26+
fmt.Println("YES")
27+
} else {
28+
fmt.Println("NO")
29+
}
30+
}
31+
}

temp.py

Whitespace-only changes.

0 commit comments

Comments
 (0)