👩🏻💻 문제 11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net ✍🏻 풀이 🎨 Go // https://www.acmicpc.net/problem/11403 package main import ( "bufio" "fmt" "os" ) func main() { reader := bufio.NewReader(os.Stdin) writer := bufio.NewWriter(os.Stdout) defer writer.Flush() var n int fmt.Fscanln(reader, &n) var graph = make([][]int, n) for i := 0;..
👩🏻💻 문제 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net ✍🏻 풀이 🎨 Go // https://www.acmicpc.net/problem/2178 package main import ( "bufio" "fmt" "os" "strings" ) var ( graph [][]string count [][]int rowDiff = []int{0, 0, -1, 1} colDiff = []int{-1, 1, 0, 0} ) func main() { reader := bufio.NewReader(os.Stdin) writer := bufio.New..
👩🏻💻 문제 9372번: 상근이의 여행 첫 번째 줄에는 테스트 케이스의 수 T(T ≤ 100)가 주어지고, 각 테스트 케이스마다 다음과 같은 정보가 주어진다. 첫 번째 줄에는 국가의 수 N(2 ≤ N ≤ 1 000)과 비행기의 종류 M(1 ≤ M ≤ 10 000) 가 www.acmicpc.net ✍🏻 풀이 🎨 Go // https://www.acmicpc.net/problem/9372 package main import ( "bufio" "fmt" "os" ) func main() { reader := bufio.NewReader(os.Stdin) writer := bufio.NewWriter(os.Stdout) defer writer.Flush() var t int fmt.Fscanln(reader,..
👩🏻💻 문제 2740번: 행렬 곱셈 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개 www.acmicpc.net ✍🏻 풀이 🎨 Go // https://www.acmicpc.net/problem/2740 // 행렬의 거듭제곱을 계산하기 전에 먼저 풀어야 할 문제 package main import ( "bufio" "fmt" "os" ) func main() { reader := bufio.NewReader(os.Stdin) writer := bufio.NewWriter(os.Stdout) defer writer.Flush() var n, ..
👩🏻💻 문제 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net ✍🏻 풀이 🎨 Go // https://www.acmicpc.net/problem/1629 // 분할 정복으로 거듭제곱을 빠르게 계산하는 문제 package main import ( "bufio" "fmt" "math/big" "os" ) func main() { reader := bufio.NewReader(os.Stdin) writer := bufio.NewWriter(os.Stdout) defer writer.Flush() var a, b, c int64 fmt.Fscanln(reader, &a, &b, &..
👩🏻💻 문제 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1의 세 값 중 하나가 저장되어 있다. 우리는 이 행렬을 적절한 크기로 자르려고 하는데, 이때 다음의 규칙에 따라 자르려고 한다. www.acmicpc.net ✍🏻 풀이 🎨 Go // https://www.acmicpc.net/problem/1780 // 쿼드트리와 비슷한데 4개 대신 9개로 나누는 문제 package main import ( "bufio" "fmt" "os" ) var ( paper [][]int minusCount int zeroCount int plusCount int ) func main() { reader := bufio.NewReader(os.Stdin) writer..
👩🏻💻 문제 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1≤N ≤64의 범위를 가진다. 두 번째 줄부터는 길이 N 의 문자열이 N 개 들어온다. 각 문자열은 0 또는 www.acmicpc.net ✍🏻 풀이 🎨 Go // https://www.acmicpc.net/problem/1992 // 쿼드트리를 문자열로 바꾸는 문제 package main import ( "bufio" "fmt" "os" "strings" ) var ( image [][]string writer *bufio.Writer ) func main() { reader := bufio.NewReader(os.Stdin) writer = bufio.NewWriter..
👩🏻💻 문제 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net ✍🏻 풀이 🎨 Go // https://www.acmicpc.net/problem/2630 // 쿼드트리를 만드는 문제 package main import ( "bufio" "fmt" "os" ) var ( paper [][]int ) func main() { reader := bufio.NewReader(os.Stdin) writer := bufio.NewWriter(os.Stdout) defer writer.Flush..