알고리즘 문제
[C/C++ 백준 13417번] 카드 문자열 (Silver 3)
새파란 공대생
2020. 9. 17. 10:17
13417번: 카드 문자열
입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 처�
www.acmicpc.net
매 카드마다 가장 앞에 있는 카드와 비교해 사전순으로 앞이거나 같다면 앞으로 넣어주고, 아니라면 뒤로 넣는것만 해주면 된다. 이 경우 앞에 넣는 것과 뒤로 넣는 두 가지 행동이 가능해야 하므로 deque를 사용해 처리해 준다.
#include <cstdio>
#include <deque>
using namespace std;
int main(void){
int T;
char card[1001];
scanf("%d", &T);
for(int i=0; i<T; i++){
int N;
deque <char> q;
deque <char>::iterator iter;
scanf("%d", &N);
for(int j=0; j<N; j++){
scanf(" %c", &card[j]);
if(j==0)
q.push_back(card[0]);
else if(card[j]<=(q.front()))
q.push_front(card[j]);
else
q.push_back(card[j]);
}
for(iter = q.begin(); iter != q.end(); iter++)
printf("%c", (*iter));
printf("\n");
}
}