[c++/프로그래머스] 숫자 게임

조히·2023년 3월 9일
0

PS

목록 보기
43/82

문제 링크

숫자 게임

풀이

어차피 A의 숫자에 대응해서 내야 할 B의 숫자는 같기 때문에, 정렬해서 푸는 문제

  1. AB를 내림차순 정렬한다.
  2. A의 인덱스 변수 idx를 초기화 하고 B를 기준으로 반복문을 돌린다.
    2-1. idxA 범위를 넘어가면 break
    2-2. B[i]A[idx]보다 크다면, 대응한 것이므로 answer++ 해주고 그 idx는 대응된 것이므로 다음으로 넘겨준다(idx++)
    2-3. 안 크다면, 대응이 안되므로 다음 숫자로 대응하기 위해 idx++ 해준다.

코드

#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(), greater<int>());
    sort(B.begin(), B.end(), greater<int>());
    
    int idx = 0;
    for(int i=0;i<B.size();i++)
    {
        while(1)
        {
            if(idx == A.size()) break;
            if(B[i]>A[idx])
            {
                answer++;
                idx++;
                break;
            }
            idx++;
        }
    }
    
    return answer;
}
profile
Juhee Kim | Game Client Developer

0개의 댓글