문제
여러 테스트 케이스에서 주어진 정수들의 합을 구하는 문제다. 각 테스트 케이스마다 정수의 개수와 정수 목록이 주어지며, 합계를 구해 출력한다.
입력
- 첫째 줄: 테스트 케이스 수
C - 각 테스트 케이스:
- 첫째 줄: 정수 개수
N - 둘째 줄:
N개의 정수
- 첫째 줄: 정수 개수
출력
각 테스트 케이스마다 정수들의 합을 한 줄씩 출력한다.
예제
| 입력 | 출력 |
|---|---|
3 2 3 5 3 1 2 3 1 10 | 8 6 10 |
풀이
테스트 케이스 수만큼 반복하며, 각 케이스에서 N개의 정수를 입력받아 합산한다.
- 테스트 케이스 수
C를 입력받는다. - 각 테스트 케이스에서 정수 개수
N을 입력받는다. N개의 정수를 순서대로 입력받으며sum에 누적한다.sum을 출력하고 다음 케이스를 위해sum을 0으로 초기화한다.
핵심 아이디어: 각 테스트 케이스가 끝날 때마다 sum = 0으로 초기화해야 이전 케이스의 합이 다음 케이스에 영향을 주지 않는다. 별도의 자료구조 없이 누적 변수 하나로 해결하는 단순 구현 문제다.
코드
#include <iostream>
using namespace std;
int main()
{
int c, n, num, sum = 0;
cin >> c;
for (int i = 0; i < c; i++)
{
cin >> n;
for (int j = 0; j < n; j++)
{
cin >> num;
sum += num;
}
cout << sum << '\n';
sum = 0;
}
return 0;
}복잡도
- 시간: O(C * N) — 전체 테스트 케이스의 입력 수만큼 순회
- 공간: O(1) — 누적 합 변수만 사용