티스토리 뷰

접근법


보통 이런 형태의 문제는 우선 나열해보면 규칙이 보이는 경우가 많다. 

 

우선, 문제를 살펴보면 규칙은 정해져 있고 몇 층의 몇 호에 몇 명이 사는지 확인하는 문제이다.

 

아파트는 조건에 적혀있듯 0층부터 시작하고 각 층은 0호부터 14호까지 있으며, 규칙에 따라 한번 나열해보면,

 

2층 1 4 10 20 35 ...
1층 1 3 6 10 15 ...
0층 1 2 3 4 5 ...

 

0층을 제외하고 규칙을 보면 2층 2호는 [ 2층 1호 + 1층 2호 ] 의 값과 같다. 또한, 1층 4호는 [ 1층 3호 + 0층 4호 ] 의

 

값과 같은 것을 확인할 수 있다. 

 

구하고자 하는 층의 거주자는 위치적으로 왼쪽과 아래쪽에 사는 거주자를 합한 값과 같고 이를 일반화하면 

 

A층 B호 = (A층 B-1호) + (A-1층 B호) 가 된다.

풀이


case = int(input())
apart = [[0] * 15 for i in range(15)]
for i in range(1,15):
    apart[0][i] = i
for floor in range(1,15):
    for room in range(1,15):
        apart[floor][room] = apart[floor][room-1] + apart[floor-1][room]

for i in range(case):
    k = int(input())
    n = int(input())
    print(apart[k][n])

 

쉽게 신축 아파트를 만들고 거기다가 위에서 만든 규칙을 이용해서 거주자를 할당해주었다.

예외적으로 0층은 1호 ~ 14호까지 각 호에 해당하는 사람이 거주하기 때문에 따로 값을 할당해주었고,

각 층에 0호가 만들어지지만 문제에서 0호는 취급하지 않기 때문에 0호의 값은 무시해도 상관없다.

근데 부녀회장이랑 이거랑 무슨 상관인...

 

 

@문제 출처 : 백준

댓글
링크
최근에 올라온 글
Total
Today
Yesterday