간단한 예시를 만들어 작성하면서, 어떻게 문제를 풀어야 할 지 생각했다.
그렇게 떠올린 방법은 '재귀함수 사용'
loop = int(input()) #test
def people(a, b):
global result
if(a == 0):
return b
else:
for i in range(1, b+1):
tmp = people(a - 1, i)
if(tmp != None):
result += tmp
for i in range(0, loop):
k = int(input()) # k층
n = int(input()) # n호
result = 0
people(k, n)
print(result)
사실, 이렇게 재귀함수를 사용하면 best 방법은 아니다.
한 번 방문했던 곳은 방문하지 않는 게 좋기 때문이다.
python으로 제출할 경우 '시간초과'
pypy로 제출할 경우 '맞았습니다'
(음.. 이 문제는 더 고민해야 할 문제같다.)
'알고리즘 > 백준' 카테고리의 다른 글
[BOJ] [Python] 2292번 : 벌집 (0) | 2021.05.04 |
---|---|
[BOJ] [Python] 1260번 : DFS와 BFS (0) | 2021.04.12 |
[BOJ] [Python] 2839번 : 설탕 배달 (0) | 2021.04.09 |
[BOJ] [Python] 1748번 : 수 이어 쓰기 1 (0) | 2021.04.05 |
[BOJ] [Python] 1449번 : 수리공 항승 (0) | 2021.03.31 |