분류: 배열 이용 시간복잡도 줄이기 스킬 /
문제
문제 설명
총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다.
출력
첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다.
풀이
#include <iostream>
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
int N, v;
int freq[201]={};
cin >> N;
for(int i=0; i<N; i++){
int t;
cin >> t;
freq[t + 100]++;
}
cin >> v;
cout << freq[v+100];
}
연관 문제: 두 수의 합
`두 수의 합`의 경우 n2의 시간복잡도를 n으로 줄일 수 있다.
'Problem Solving > BOJ' 카테고리의 다른 글
[백준 - 10828] 스택 - C++ (0) | 2023.09.19 |
---|---|
[백준 - 1158] 요세푸스 문제 - C++ (2) | 2023.09.19 |
[백준] 피보나치 수 시리즈 풀이 모음 (0) | 2023.09.17 |
[백준 - 2747] 피보나치 수 - C++ (0) | 2023.09.17 |
[백준 - 1149] RGB거리 - C++ (0) | 2023.09.17 |