문제 URL:
15596번: 정수 N개의 합
C++17, Java 8, Python 3, C11, PyPy3, C99, C++98, C++11, C++14, Python 2, PyPy2, Go, C99 (Clang), C++98 (Clang), C++11 (Clang), C++14 (Clang), C11 (Clang), C++17 (Clang)
www.acmicpc.net
다음 문제는 정수 n개가 주어졌을 때, n개의 합을 구하는 함수를 작성하는 문제로
이 문제는 벡터를 이용하여 간단하게 풀 수 있는다.
풀이 코드는 아래와 같다.
+) 함수에서 벡터를 인수로 받는 문제들을 풀 때, (물론 이전에 왜 참조에 의한 전달을 하는지 배웠겠지만)
기계적으로 함수의 매개변수를 참조에 의해 전달했었다.
이 문제를 풀 때 문뜩 함수 내부에서 값이 변경되는 것도 아닌데 함수에 참조 매개변수를 쓰는 이유가 궁금해져
참고 교재를 찾아보았는데, 이는 객체 전달에서 객체들이 많은 메모리를 차지할 수 있으므로
객체 유형에 대해서는 참조에 의한 전달이 더 효과적이라고 한다.
#include <vector>
long long sum(std::vector<int> &a)
{
long long ans = 0;
for(int i=0; i<a.size(); i++)
ans += a[i];
return ans;
}