Hello World!/Algorithm

CodeUp 1091 : 수 나열하기3 - python

헬로월드! 2020. 12. 29. 18:59

파이썬으로 코딩테스트를 준비하며, 코드업에 있는 100문제를 풀어보았다.

문제를 풀어보며 파이썬의 기초에 대해 다시 한 번 정리할 수 있었다.

 

문제 ) 

예를 들어
1 -1 3 -5 11 -21 43 ... 은
1부터 시작해 이전에 만든 수에 -2를 곱한 다음 1을 더해 다음 수를 만든 수열이다.

 

시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때,
n번째 수를 출력하는 프로그램을 만들어보자.

 

 

입력) a, m , d, n * 예시 > 1 -2 1 8

 

출력) n 번째 수* 예시 > -85

 

나의 풀이 방법 )

먼저 예시를 보고 첫째항을 a 라고 하고 둘째 셋째, 넷째항은 각각 a2, a3, a4 이라고 가정했다.

그리고 식을 차례로 써보았다.

a= 1 

a2= 1 * (-2) + 1 = -1 

a3= -1 * (-2) + 1 = 3 

a4= 3 * (-2) + 1 =-5 

... 

... 

...

an= an-1 * (-2) +1 

n 번째 항의 값은 이전 항에 곱하기와 더하기를 해준 값일 것이다.

그렇다면 , n번째 항을 구할 때 앞에 나온 결과값을 활용해야 계산할 수 있다는 것이다. 

 

1. 입력을 받고

2. result 라는 변수에 첫째항을 넣어준다.

3. 반복문을 돌리면서 (이때 첫째항은 이미 result에 넣어줬기 때문에 a2부터 계산을 시작한다고 가정하여 range(n-1)로 하였다.)

4. result 변수에 앞서 계산한 result 를 누적해서 계산해준다.