티스토리 뷰

접근법
보통 이런 형태의 문제는 우선 나열해보면 규칙이 보이는 경우가 많다.
우선, 문제를 살펴보면 규칙은 정해져 있고 몇 층의 몇 호에 몇 명이 사는지 확인하는 문제이다.
아파트는 조건에 적혀있듯 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호의 값은 무시해도 상관없다.근데 부녀회장이랑 이거랑 무슨 상관인...
'프로그래밍 > BOJ' 카테고리의 다른 글
| 백준 #1978: 소수 찾기 (0) | 2020.01.22 |
|---|---|
| 백준 #1011: Fly me to the Alpha Centauri (0) | 2020.01.19 |
| 백준 #10250: AMC 호텔 (0) | 2020.01.17 |
| 백준 #2869: 달팽이는 올라가고싶다 (0) | 2020.01.17 |
| 백준: #단계별로 풀어보기, 수학 (1) (0) | 2020.01.13 |
댓글