반응형
https://www.acmicpc.net/problem/2292
코드
1 2 3 | import math n=int(input()) print(+(n==1) or int((3+math.sqrt(9-24+12*n))/6)+1) | cs |
코드설명
입력 |
결과 |
1 |
1 |
2~7 |
2 |
8~19 |
3 |
20~37 |
4 |
38~61 |
5 |
... |
|
같은 결과를 가지는 입력의 가장 처음 숫자는
1 2 8 20 38 62 ... 이며 이는 계차수열이다.
* an이 입력값, n이 출력값이다.
*입력이 1인 경우는 따로 처리, a1 = 2로 시작한다.
계차수열의 일반항은 다음과 같다.
이때, bk는 등차수열이므로, bk의 일반항은 다음과 같다.
따라서 bk의 합은 다음과 같으며,
최종적으로 an의 일반항은 다음과 같다.
즉, an이 input일 때
의 해는 다음과 같다.
* 2차함수의 해
a1의 결과는 2, a2의 결과는 3 ... 이므로 최종 n+1로 출력한다.
반응형
'코딩테스트 연습 > 백준' 카테고리의 다른 글
[백준] 1011번 : Fly me to the Alpha Centauri in python 설명 (0) | 2019.09.03 |
---|---|
[백준] 1193번 : 분수찾기 in python 쉽게설명하기 (0) | 2019.08.28 |
[백준] 2839번 : 설탕 배달 in python (1) | 2019.08.23 |
[백준] 1712번 : 손익분기점 in python (0) | 2019.08.22 |
[백준] 1316번 : 그룹 단어 체커 in python (0) | 2019.08.21 |