개발/백준
[백준] 13417번. 카드 문자열 (C++)
yun000
2024. 1. 6. 17:40
문제 설명
https://www.acmicpc.net/problem/13417
13417번: 카드 문자열
입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 처
www.acmicpc.net
해결 방법
문자열을 입력받은 후 아스키코드로 변경하여 vector에 저장한다.
0번째 문자보다 아스키코드가 같거나 작으면 왼쪽에, 크다면 오른쪽에 문자를 추가
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int n, t; cin >> t;
for (int k = 0; k < t; k++)
{
// 영어 대문자 아스키코드 65-90
cin >> n;
vector<int> card(n);
char input;
for (int i = 0; i < n; i++)
{ cin >> input; card[i] = int(input); }
string result;
result += char(card[0]);
for (int i = 1; i < n; i++)
{
if (card[i] <= int(result[0]))
{ result = char(card[i]) + result; }//왼쪽에 붙이기
else
{ result = result + char(card[i]); }//오른쪽에 붙이기
}
cout << result << "\n";
}
}
+ 백준 질문 게시판에서 찾은 추가적인 예제
입력
2
4
Z A B Z
7
A S D F G A S
출력
AZBZ
AASDFGS