본문 바로가기

알고리즘_개념 및 문제풀이

프로그래머스/숫자게임/2018서머코딩기출/

반응형

https://programmers.co.kr/learn/courses/30/lessons/12987

 

알고리즘 연습 - 숫자 게임 | 프로그래머스

실행 결과가 여기에 표시됩니다.

programmers.co.kr

 

A팀과 B팀의 숫자를 오름차순으로 sort 한뒤,

A팀의 작은 숫자부터 순회하면서 B팀에서 작은 숫자부터 비교하여, B팀에서 더 큰 숫자가 나오자마자, answer에 ++하고, 

다음 B팀에서의 순회는 B팀에서 이전에 큰 숫자가 나온 index 다음 index부터 탐색해나간다.

구현코드

 


구현코드_ C++로 작성

#include <string>
#include <vector>
#include <algorithm>
#include <iostream>

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 tmp = 0;
    for(int i = 0; i < A.size(); i++){
        for(int j = tmp ; j < B.size(); j++){
            if(A[i]<B[j]){
                tmp = j+1;
                answer++;
                if(tmp>=B.size()){ // 종료 조건 
                    return answer;
                }
                break;
            }
        }
    }
    return answer;
}

int main(){
    cout<<solution({2,2,2,2},{1,1,1,1});
    return 0;
}

 

반응형