파이썬으로 코딩테스트를 준비하며, 코드업에 있는 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 를 누적해서 계산해준다.
'Hello World! > Algorithm' 카테고리의 다른 글
백준 1476 날짜계산 - python (0) | 2021.02.13 |
---|---|
백준 2309 일곱 난쟁이 - python (0) | 2021.02.02 |
백준 2751 수 정렬하기 2 - python (0) | 2021.02.02 |
백준 11650 좌표 정렬하기 - python (0) | 2021.01.14 |
Code Up 1096 : 바둑판에 흰 돌 놓기 - python (0) | 2021.01.12 |