코딩테스트/프로그래머스
[프로그래머스] 숫자 짝꿍
쪼르뚜
2023. 12. 7. 21:45
728x90
반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/131128
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이와 코드
1. 두 문자열을 하나의 char로 쪼개서 벡터에 저장
2. 두 개의 벡터의 교집합을 반환하는 함수 사용
3. 내림차순으로 answer에 추가
4. 예외 처리로 -1과 0 여러개인 경우 추가
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string solution(string X, string Y) {
int zeroCount = 0;
string answer = "";
vector<char> xDigits;
vector<char> yDigits;
vector<char> intersection;
for(int i=0; i<X.length(); i++){
xDigits.push_back(X[i]);
}
for(int j=0; j<Y.length(); j++){
yDigits.push_back(Y[j]);
}
sort(xDigits.begin(), xDigits.end());
sort(yDigits.begin(), yDigits.end());
set_intersection(xDigits.begin(), xDigits.end(), yDigits.begin(), yDigits.end(), back_inserter(intersection));
if (intersection.size() <= 0){
return "-1";
}
for (int k=intersection.size()-1; k>=0; k--){
answer += intersection[k];
if (intersection[k] == '0'){
zeroCount++;
}
}
if (zeroCount == intersection.size()){
return "0";
}
return answer;
}
728x90
반응형