백준 10807 - 개수 세기
백준 10807 — 고정 배열 저장 후 선형 탐색으로 개수 세기
백준 10807 “개수 세기” 풀이다. N개의 정수 중 특정 값 v가 몇 번 등장하는지 센다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
int arr[100];
for (int i = 0; i < n; i++)
cin >> arr[i];
int v;
cin >> v;
int count = 0;
for (int i = 0; i < n; i++)
if (arr[i] == v) count++;
cout << count << "\n";
return 0;
}
찾을 값 v가 입력의 마지막에 주어지기 때문에 숫자들을 먼저 배열에 담아 둬야 한다. N이 100 이하로 작고 고정이라 vector 대신 스택 고정 배열을 썼고, 저장 후 한 번 순회하며 카운팅했다.
핵심 요약 — 비교 대상이 입력의 마지막에 주어지는 문제는 저장이 필수라는 것. 이때 크기가 작고 고정이면 힙 할당이 없는 고정 배열이
vector보다 단순하고 오버헤드도 없다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.