코딩테스트/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;
}