Level1 - -
문제
문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
- str은 길이 1 이상인 문자열입니다.
s | return |
"Zbcdefg" | "gfedcbZ" |
풀이
사용언어 : C++
string형과 char형에 대해서 다시 찾아보고 공부가 필요함을 느꼈다.
최근 개발에서 JS만 사용해서 자료형이나 형변환을 신경을 쓰지 않고 개발을 해서 잊고 개발하던 부분을
다시 문제를 통해서 찾아보는 기회가 되었다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool compare ( char a, char b );
string solution(string s) {
string answer = "";
vector<char> vecStrSmall;
vector<char> vecStrLarge;
for ( int i = 0; i < s.size(); ++i ){
if ( 'a' <= s[i]){
vecStrSmall.push_back(s[i]);
}
else{
vecStrLarge.push_back(s[i]);
}
}
sort(vecStrSmall.begin(), vecStrSmall.end(), compare);
sort(vecStrLarge.begin(), vecStrLarge.end(),compare);
for(int i = 0 ; i < vecStrSmall.size(); ++i ){
answer.push_back(vecStrSmall[i]);
}
for(int i = 0 ; i < vecStrLarge.size(); ++i ){
answer.push_back(vecStrLarge[i]);
}
return answer;
}
bool compare ( char a, char b ){
return a>b;
}
다른사람의 풀이
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
string solution(string s) {
sort (s.begin(), s.end(), greater<char>());
return s;
}
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string solution(string s) {
string answer = "";
sort(s.rbegin(),s.rend());
return s;
}
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12917
'개발 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/C++] 직사각형 별찍기 (0) | 2022.11.24 |
---|---|
[프로그래머스/C++] 약수의 개수와 덧셈 (0) | 2022.11.23 |
[프로그래머스/C++] 문자열 다루기 기본 (0) | 2022.11.21 |
[프로그래머스/C++] 수박수박 출력문제 (0) | 2022.11.20 |
[프로그래머스/C++] 내적 (0) | 2022.11.19 |