문제
알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 입력으로 주어진다. 이 때 모든 알파벳을 오름차순으로 정렬하여 이어서 출력한 뒤에, 그 뒤에 모든 숫자를 더한 값을 이어서 출력한다.
입력: 첫째 줄에 하나의 문자열 S가 주어진다(1 <= S 길이 <= 10,000)
출력: 첫째 줄에 문제에서 요구하는 정답을 출력한다.
예)
입력: K1KA5CB7 => 출력: ABCKK13
code
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main() {
int sum = 0;
string str = "";
string scores;
cin >> scores;
//입력받은 문자열의 수만큼 반복하며 계산한다.
for (int i = 0; i < scores.size(); i++) {
if ('0' <= scores[i] && scores[i] <= '9')
sum += scores[i]-'0';
else
str += scores[i];
}
//두 개의 인자만 넣어주는 경우 오름차순으로 정렬
sort(str.begin(), str.end());
cout << str;
if (sum != 0)
cout << sum;
}
결과
'Programming > Programming 풀이' 카테고리의 다른 글
[Baekjoon] 10828번 스택(C언어) (285) | 2021.01.07 |
---|---|
[Baekjoon] 11279번 최대 힙(C++) (476) | 2021.01.07 |
[Baekjoon] 18406번 럭키 스트레이트(C++) (460) | 2020.10.17 |
[Algorithm] 그리디 알고리즘 - 거스름돈 문제(C++) (0) | 2020.09.26 |
[Programmers] 체육복 풀이(C++) (0) | 2020.09.26 |