일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 5525
- 18111
- js
- BOJ
- 정수 삼각형
- C++
- 1620
- 구간 합 구하기 4
- 4796
- mermaid js
- 브루트포스 알고리즘
- 없는 숫자 더하기
- colorSyntax
- Git Convention
- 프로그래머스
- 이분탐색
- 소수 체크
- 주식 가격
- Hasing
- react
- codeSyntaxHighlight
- 숫자 문자열과 영단어
- javascript
- 다이내믹 프로그래밍
- 10162
- 2018 KAKAO BLIND RECRUITMENT
- 위클리 챌린지
- 옵셔널 체이닝 연산자
- n^2 배열 자르기
- 깊이 우선 탐색
Archives
- Today
- Total
개발하는 kim-hasa
[c++][프로그래머스] 문자열 내림차순으로 배치하기 본문
https://programmers.co.kr/learn/courses/30/lessons/12917
코딩테스트 연습 - 문자열 내림차순으로 배치하기
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로
programmers.co.kr
문자열을 내림차순으로 배치하는 문제입니다.
문자열을 소문자와 대문자로 다른 배열에 넣은 후 정렬합니다.
그 이후 소문자 뒤에서부터, 대문자 뒤에서부터 정답 문자열에 추가합니다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string solution(string s) {
string answer = "";
vector<string> big; // 대문자
vector<string> small; // 소문자
for(int i=0; i<s.length(); i++) // 소문자와 대문자를 다른 배열에 넣어줌
{
char text = s[i];
if(text >= 65 && text <= 90)
{
string strB = "";
strB += text;
big.push_back(strB);
}
else if(text >= 97 && text <= 122)
{
string strS = "";
strS += text;
small.push_back(strS);
}
}
sort(big.begin(), big.end());
sort(small.begin(), small.end()); // 넣은 문자를 정렬
for(int j = small.size()-1; j>=0; j--)
{
answer += small[j];
}
for(int k = big.size()-1; k>=0; k--) // 뒤에서부터 넣기
{
answer += big[k];
}
return answer;
}
'Algorithm > Programmers(c++)' 카테고리의 다른 글
[c++][프로그래머스] 서울에서 김서방 찾기 (0) | 2021.08.03 |
---|---|
[c++][프로그래머스] 문자열 다루기 기본 (0) | 2021.08.03 |
[C++][프로그래머스] 문자열 내 p와 y의 개수 (0) | 2021.08.03 |
[c++][프로그래머스] 문자열 내 마음대로 정렬하기 (0) | 2021.08.02 |
[c++][프로그래머스] 두 정수 사이의 합 (0) | 2021.08.02 |