반응형
문제
오각형의 각 변에 아래 그림과 같이 점을 찍어 나간다. N단계에서 점의 개수는 모두 몇 개일까?
입력
첫째 줄에 N(1 ≤ N ≤ 10,000,000)이 주어진다.
출력
첫째 줄에 N단계에서 점의 개수를 45678로 나눈 나머지를 출력한다.
예제 입력 13
|
예제 출력 122
|
예제 입력 21
|
예제 출력 25
|
예제 입력 319
|
예제 출력 3590
|
풀이
위의 그림과 같이 n 번째 단계의 오각형의 점은 n*3 과 오른쪽 아래의 점 1개가 추가됨을 알 수 있다.
맨 왼쪽 아래의 점은 0단계의 기본값이라고 생각하면 되겠다.
하지만 1부터 10,000,000 단계까지의 점을 모두 다 더해보기엔 시간이 매우 많이 소모될 것 같다.
따라서 1부터 n까지의 수의 합을 한 번에 더하는 공식을 사용한 다음, 곱하기 3을 해주고 나머지 처리를 해주도록 하자.
n = int(input())
a = (1 + n)*n//2
print((a*3 + n + 1)%45678)
반응형
'알고리즘 연습 > 수학, 정수론, 기하' 카테고리의 다른 글
[🥉3 / 백준 10569 / 파이썬] 다면체 (0) | 2022.02.16 |
---|---|
[🥉4 / 백준 5532 / 파이썬] 방학 숙제 (0) | 2022.02.15 |
[🥉4 / 백준 1297 / 파이썬] TV 크기 (0) | 2022.01.26 |
[🥈2 / 백준 1850 / 파이썬] 최대공약수 (0) | 2022.01.16 |
[🥉3 / 백준 2965 / 파이썬] 캥거루 세마리 (0) | 2022.01.11 |