vector의 크기와 번호를 읽어요
함수·조건문·반복문을 익힌 뒤 시작해요. vector<int>는 정수를 순서대로 담는 배열이에요. <vector> 헤더를 포함하면 사용할 수 있어요.
vector<int> values = {6, 2, 9};
int first = values[0];
int length = values.size();
인덱스는 0부터 시작해요. values[0]은 6, values[2]는 9이고 길이는 3이에요. 길이와 마지막 인덱스는 달라요. values[3]은 존재하지 않아요. 이 레슨에서는 길이가 100 이하라 size()의 값을 int에 담아도 돼요. vector<int> values(3);처럼 길이를 정해 만들면 정수 0인 칸 세 개가 생겨요. vector<int> values(3, 5);는 모든 칸을 5로 시작해요.
값과 인덱스를 구분해서 순회해요
int total = 0;
for (int i = 0; i < values.size(); i++) {
total = total + values[i];
}
| i | values[i] | 처리 후 total |
|---|---|---|
| 0 | 6 | 6 |
| 1 | 2 | 8 |
| 2 | 9 | 17 |
다음으로 i=3을 처리할까요? 조건이 거짓이라 멈춰요. i를 더하면 인덱스 합 3이 되지만, values[i]를 더하면 값의 합 17이에요. 빈 vector의 size()는 0이고 이 반복은 한 번도 실행하지 않아요.
직접 풀어봐요
측정값 vector values와 기준 limit을 받아, 기준을 초과하는 원소 개수를 반환해요. 같은 값이 여러 번 있으면 각각 하나씩 세요.
vector 길이는 0100, 원소와 limit은 −10001000이에요. 실행용 입력은 첫 줄 길이 n, 다음 줄 n개 정수, 마지막 줄 limit이에요. n=0이면 원소 줄은 비어 있어요. 출력은 반환값이에요. 입력은 하네스가 읽어요.
예시 1: values={5,9,6,11}, limit=6 → 2. 9와 11을 세요.
예시 2: values={2,8,3}, limit=1 → 3. 모두 기준을 넘어요.
예시 입력
4 5 9 6 11 6
예상 결과
2
예시 입력
3 2 8 3 1
예상 결과
3
핵심 개념
stl-vector: vector의 길이는size()이고 유효 인덱스는 0부터 길이−1까지예요. 값은values[i]로 읽어요.