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
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] [PCCE 기출문제] 9번 / 이웃한 칸 (0) | 2024.01.17 |
---|---|
[프로그래머스] 문자열 나누기 (0) | 2023.12.14 |
[프로그래머스] 덧칠하기 (2) | 2023.11.09 |
[프로그래머스] 기사단원의 무기 (1) | 2023.11.02 |
[프로그래머스] 소수 찾기 (1) | 2023.11.02 |