BOJ 2775 : 부녀회장이 될테야

Ok Haeeun·2023년 1월 20일
0

Go로 algorithm문풀

목록 보기
15/16

이 문제에서 공식을 찾아보려고 노력 또 노력을 했으나 기하급수적으로 늘어나는 숫자에 포기하고 다른 사람들의 풀이를 참고해서 풀었다.

핵심 : 아래층 b-1호까지 더한 사람 수는 당연히 현재층 b-1호의 사람 수

그려보면 아주 쉽게 알 수 있는 부분이지만 나는 떠올리지 못했다. 어떻게 덧셈을 반복할지만 찾느라 혈안이 되어 있었는데 다른 사람들의 풀이를 보니 매번 다 일일이 더해주는 것이 아니라 패턴을 찾아 덧셈과정을 생략한다..!

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])
			}
		}
	}
}

수학적 사고력 있고 싶다~~~

profile
貫徹

0개의 댓글