코딩테스트/C++
[프로그래머스 Level 3] 숫자 게임(C++)
최-코드
2024. 6. 22. 15:54
코딩테스트 연습 - 숫자 게임 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
처음엔 A가 주어진 순서에서 upper_bound()함수를 써서 B에서 만족하는 수를 찾아 제거해주는 방식으로 했는데 입력 범위가 커서 시간초과가 떠서 다른 방식으로 했다.
A의 주어졌을 때 B가 이에 맞춰 순서를 맞추는 거여서 A의 순서와 B의 순서를 정렬해줘도 된다고 생각했고, A의 원소를 가리키는 포인터와 B의 원소를 가리키는 포인터를 비교해서 B 끝까지 탐색해주는 방식으로 해줬다.
#include <string>
#include <vector>
#include<algorithm>
using namespace std;
int solution(vector<int> A, vector<int> B) {
int answer = 0;
sort(A.begin(), A.end());
sort(B.begin(), B.end());
int i = 0;
while (A[0] > B[i]) {
i++;
}
int j = 0;
while (i < B.size()) {
if (A[j] < B[i]) {
answer++;
j++;
}
i++;
}
return answer;
}