프로그래밍/알고리즘

Softeer-연습문제-H-클린알파(C++)

Se-chan Oh 2021. 12. 23. 18:52

문제 링크 :

https://softeer.ai/practice/info.do?eventIdx=1&psProblemId=423&sw_prbl_sbms_sn=40926 

 

문제 개요 : 

N초 후 바이러스의 개수 구하기

 

#include<iostream>
#include<vector>

#define MOD 1000000007

using namespace std;

int main(int argc, char** argv)
{
	// 입력
	unsigned long P,N;
	vector<unsigned long> A(N);
	cin >> P >> N;
	for (unsigned i=0;i<N;i++){
		cin >> A[i];
	}

	// 계산
	unsigned long res = 0;
	for (unsigned i=0; i<N; i++){
		res *= P;
		res %= MOD;
		res += A[i];
	}

	// 출력
	printf("%d",res);

	return 0;
}

 

주의해야 할 점

1. 숫자가 크기 때문에 unsigned long 자료형을 사용한다.

2. P배 해준 뒤에는 숫자가 커지기 때문에 반드시 1000000007로 나누어준다.