문제 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 풀이 package main import ( "bufio" "fmt" "math" "os" ) func main() { var n int reader := bufio.NewReader(os.Stdin) writer := bufio.NewWriter(os.Stdout) fmt.Fscanln(reader, &n) defer writer.Flush() fmt.Fprintln(writer, int(math.Pow(2, float64(n)))-1) han..
문제 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 � www.acmicpc.net 풀이 package main import ( "bufio" "fmt" "os" ) func main() { var n int reader := bufio.NewReader(os.Stdin) writer := bufio.NewWriter(os.Stdout) fmt.Fscanln(reader, &n) defer writer.Flush() var starMat = make([][]bool, n) for i := 0; i < n; i..
문제 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 �� www.acmicpc.net 풀이 package main import ( "fmt" "bufio" "os" ) func main() { var n int reader := bufio.NewReader(os.Stdin) fmt.Fscanln(reader, &n) var result = fibonacci(n) fmt.Println(result) } func fibonacci(n int) (result int) { if n == 0 || n == 1..
문제 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 package main import ( "bufio" "fmt" "os" ) func main() { var n int reader := bufio.NewReader(os.Stdin) fmt.Fscanln(reader, &n) fmt.Println(factorial(n)) } func factorial(n int) (result int) { if n == 1 || n == 0 { return 1 } return n * factorial(n-1) }
문제 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 풀이 package main import ( "bufio" "fmt" "math" "os" ) func main() { var t int reader := bufio.NewReader(os.Stdin) writer := bufio.NewWriter(os.Stdout) fmt.Fscanln(reader, &t) defer writer.Flush() for i := 0; i < t; i++ { var x1, y1, r1, x2, y2, r2 int fmt.Fscanln(reader, &x1, &y1, &r1, &..
문제 3053번: 택시 기하학 문제 19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다. 택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다. D(T1,T2) = |x1-x2| + | www.acmicpc.net 풀이 package main import ( "bufio" "fmt" "math" "os" ) func main() { var r int reader := bufio.NewReader(os.Stdin) fmt.Fscanln(reader, &r) fmt.Printf("%.6f\n", float64(r*r)*math.Pi) fmt.Printf("%.6f\n", float64(2*r*r)) }
문제 4153번: 직각삼각형 문제 과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오. 입력 입력은 여러개의 테스트케이스로 www.acmicpc.net 풀이 package main import ( "fmt" "bufio" "os" "math" ) func main() { var a,b,c float64 reader := bufio.NewReader(os.Stdin) writer := bufio.NewWriter(os.Stdout) defer writer.Flush() for true { fmt.Fscanln(reader, &a, &b, &c) if a ==0 &&b==0&& c==0 { break } aPow ..
문제 3009번: 네 번째 점 문제 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. 입력 세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, www.acmicpc.net 풀이 package main import ( "bufio" "fmt" "os" ) func main() { var x = make([]int, 4) var y = make([]int, 4) reader := bufio.NewReader(os.Stdin) for i := 0; i < 3; i++ { fmt.Fscanf(reader, "%d %d\n", &x[i], &y[i]) } if x[0] == x[1] { x[3] = x[2] } else if x[0]..