https://www.acmicpc.net/problem/7795
문제 분석
크기가 n인 집합을 v1 그리고 크기가 m인 집합을 v2라고 하였을 때, v1의 원소 중 v2보다 작은 것이 몇개인지 카운트 하는 문제이다.
다양한 풀이 방법이 있지만, 완전 탐색으로 풀었다.
코드
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int t;
int main()
{
cin >> t; //테스트 수
for(int x=0; x<t; x++)
{
int n,m;
cin >> n >> m;
vector<int>v1(n); //n개의 크기
vector<int>v2(m); //m개의 크기
//입력
for(int x=0; x<n; x++) cin >> v1[x];
for(int x=0; x<m; x++) cin >> v2[x];
int cnt=0; //쌍의 개수 세기
//정렬
sort(v1.begin(),v1.end());
sort(v2.begin(),v2.end());
for(int y=0; y<n; y++)
{
for(int x=0; x<m; x++)
{
if(v1[y] > v2[x]) cnt++;
else break;
}
}
cout << cnt <<"\n";
}
return 0;
}
|
cs |
문제 풀이
몇번 테스트 할지 알기 위해, t 입력 받고 for문으로 t번 반복한다.
배열의 크기를 정할 n,m을 입력 받고, 벡터 형태의 v1, v2를 각각의 크기 만큼 정의 해준 뒤, 입력 받는다.
각 배열들의 오름차순으로 sort() 해준다.
쌍의 개수를 셀 cnt를 0으로 초기화 해주고 정의해 준다.
2중 for문을 통해 v1의 원소가 v2에 존재하는지 확인하고 있다면 cnt++ 없다면 break로 꺼준다.
2중 for문을 다 돌고 난 뒤, cnt 함수를 출력한다.
'Koala - 7기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[BOJ / Python] 1644 - 소수의 연속합 (0) | 2022.07.25 |
---|---|
[백준/Python] 14503번: 로봇 청소기 (0) | 2022.07.24 |
[백준 / Python] 21608번 상어 초등학교 (0) | 2022.07.24 |
[백준/C++] 14465 소가 길을 건너간 이유 5 (0) | 2022.07.24 |
[백준/python] 17135 캐슬 디펜스 (0) | 2022.07.24 |