알고리즘 연습/수학, 정수론, 기하

[🥉3 / 백준 1964 / 파이썬] 오각형, 오각형, 오각형…

김세진 2022. 2. 12. 22:23
반응형

 

 

1964번: 오각형, 오각형, 오각형…

첫째 줄에 N(1 ≤ N ≤ 10,000,000)이 주어진다.

www.acmicpc.net

 

문제

오각형의 각 변에 아래 그림과 같이 점을 찍어 나간다. N단계에서 점의 개수는 모두 몇 개일까?

입력

첫째 줄에 N(1 ≤ N ≤ 10,000,000)이 주어진다.

출력

첫째 줄에 N단계에서 점의 개수를 45678로 나눈 나머지를 출력한다.

 

예제 입력 1

3

예제 출력 1

22

예제 입력 2

1

예제 출력 2

5

예제 입력 3

19

예제 출력 3

590

 

풀이

 

 

 

위의 그림과 같이 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)
반응형