Study/BOJ
BOJ 9461번
루ㅌ
2020. 3. 13. 12:05
https://www.acmicpc.net/problem/9461
피도반 수열의 새로운 삼각형의 한 변의 길이는 직전 삼각형의 변의 길이와 5번째 전 삼각형의 변의 길이의 합입니다.
import sys
def make_p_list(max_range, p_list):
if max_range > 10:
for i in range(max_range - 10):
next_p = p_list[-1] + p_list[-5]
p_list.append(next_p)
else:
pass
return p_list
def out(p_list, test_case_list):
for test_case in test_case_list:
print(p_list[test_case-1])
T = int(sys.stdin.readline())
p_list = [1, 1, 1, 2, 2, 3, 4, 5, 7, 9]
test_case_list = []
max_range = 10
for i in range(T):
test_case = int(sys.stdin.readline())
if test_case > max_range:
max_range = test_case
test_case_list.append(test_case)
p_list = make_p_list(max_range, p_list)
out(p_list, test_case_list)
우선 테스트 케이스를 담을 test_case_list를 구하고
max_range라는 값에 테스트 케이스중 가장 큰 값을 담습니다.
make_p_list로 10개까지 구해진 p_list에 max_range가 10이 넘는다면 max_range까지 p_list에 값을 추가합니다.
out 함수로 테스트 케이스를 담은 test_case_list를 for문으로 돌며 p_list에서 해당하는 값을 가져옵니다.