이 문제에서 공식을 찾아보려고 노력 또 노력을 했으나 기하급수적으로 늘어나는 숫자에 포기하고 다른 사람들의 풀이를 참고해서 풀었다.
그려보면 아주 쉽게 알 수 있는 부분이지만 나는 떠올리지 못했다. 어떻게 덧셈을 반복할지만 찾느라 혈안이 되어 있었는데 다른 사람들의 풀이를 보니 매번 다 일일이 더해주는 것이 아니라 패턴을 찾아 덧셈과정을 생략한다..!
b층을 구하기 위해 같은 층 전 방(b-1호)와 아래층 같은 호수 방 사람 수를 더하면 간단히 구할 수 있다. 다들 천재들인가? 어떻게 이걸 생각해~~~대박임.
그 아이디어로 푼 코드
package main
import (
"bufio"
"fmt"
"os"
)
func main(){
var apartment [15][15]int
var t, k, n int
for i:=1;i<15;i++ {
apartment[0][i] = i
}
for i:=1;i<15;i++{
for j:=1;j<15;j++{
apartment[i][j] = apartment[i-1][j]+apartment[i][j-1]
}
}
_, err := fmt.Scan(&t)
stdin := bufio.NewReader(os.Stdin)
if err != nil{
fmt.Println(err)
stdin.ReadString('\n')
} else{
for i:=0;i<t;i++{
_,err := fmt.Scan(&k, &n)
if err==nil{
fmt.Println(apartment[k][n])
}
}
}
}
수학적 사고력 있고 싶다~~~