프로그래머스 숫자 게임 문제 풀이를 진행하였습니다.
문제를 읽으면 아래와 같은 해석이 가능합니다.
A, B팀의 사원들이 각각 자연수를 하나씩 부여받습니다.
각 팀에서 한명씩 나와 자신의 수를 보여주고 큰 수를 가진 사람이 점수를 부여받습니다.
같은 수일 경우 점수를 받지 않습니다.
A팀의 출전 순서를 알고 있을 때 B팀의 최대 승점을 구해야합니다.
A의 출전 순서를 알고 있고 A팀의 사원보다 더 큰 수를 미리 준비해두면 됩니다.
A와 B팀이 뽑은 자연수들을 오름차순으로 정렬 후 앞에서부터 차례대로 큰 수를 찾아나가면 됩니다.
#include <bits/stdc++.h>
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> A, vector<int> B) {
int answer = 0;
int idx = 0;
sort(A.begin(), A.end());
sort(B.begin(), B.end());
for(int i = 0; i < B.size() && idx < A.size(); i++)
{
if(A[idx] < B[i]) idx++;
}
answer = idx;
return answer;
}
https://school.programmers.co.kr/learn/courses/30/lessons/12987