C++:: 프로그래머스 < 숫자 짝꿍 >

jahlee·2023년 5월 17일
0

프로그래머스_Lv.1

목록 보기
30/75
post-thumbnail

공통된 숫자를 사용해서 가장 큰 숫자를 만들어 주면 되는 문제이다.

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

string solution(string X, string Y)
{
    string answer = "";
    vector<int> v(10, 0);// 0~9까지 숫자 개수
    vector<char> res;
    for(int i=0;i<X.size();i++) v[X[i] - '0']++;//X 에 들어있는 숫자 각 v에 ++
    for(int i=0;i<Y.size();i++) if(--v[Y[i] - '0'] >= 0) res.push_back(Y[i]);// 0보다 크거나 같다면
    sort(res.begin(), res.end(), greater<char>());//내림차순 정렬
    for(auto c : res) answer.push_back(c);
    if (answer.empty()) return "-1";//하나도 같은게 없다면
    if (answer[0] == '0') return "0";//0으로만 이루어진 문자열 이라면
    return answer;
}

0개의 댓글