[C++] 백준 14단계 - 10816번 문제 (숫자 카드 2)자료구조 & 알고리즘/BOJ2023. 7. 22. 09:35
Table of Contents
문제설명
소스코드
#include <iostream>
#include <map>
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false); //표준 스트림 동기화 해제
cin.tie(nullptr); //입출력 연결 끊기
map<int, int> m;
int N, M;
cin >> N;
for (int i = 0; i < N; ++i)
{
int input;
cin >> input;
++m[input];
}
cin >> M;
for (int i = 0; i < M; ++i)
{
int input;
cin >> input;
cout << m[input] << " ";
}
}
설명
- 표준 스트림 동기화해제, 입출력 연결 끊기 -> 시간초과 방지
- 선형 방식인 이중for문은 시간복잡도 O(N^2)이므로 시간초과가 발생한다.
- map 라이브러리의 map을 사용하면 시간복잡도O(log(N))이라서 시간초과가 발생하지 않는다.
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[C++] 백준 14단계 - 1269번 문제 (대칭 차집합) (0) | 2023.07.24 |
---|---|
[C++] 백준 14단계 1764번 문제 (듣보잡) (0) | 2023.07.23 |
[C++] 백준 14단계 - 14425번 문제 (문자열 집합) (0) | 2023.07.21 |
[C++] 백준 14단계 - 10815번 문제 (숫자 카드) (0) | 2023.07.20 |
[C++] 백준 13단계 - 1181번 문제 (단어 정렬) (0) | 2023.07.20 |