문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

6034 : 중복 문자 제거 — 사전순 최소

•시간제한: 2.000 S •메모리제한: 256 MB •제출: 0 •통과: 0 •만든사람: suakii

6034 : 중복 문자 제거 — 사전순 최소

시간 2.000s · 메모리 256MB · 제출 0 · 정답 0

문제 설명

소문자 알파벳으로만 구성된 문자열이 주어집니다.
문자열에 등장하는 중복된 문자들을 제거하여, 모든 알파벳이 정확히 한 번씩만 등장하는 새로운 문자열을 만드십시오.
이때, 가능한 여러 문자열 중 사전순으로 가장 빠른(가장 작은) 문자열을 구하십시오.
단, 문자의 원래 상대적인 등장 순서 구조는 보존되어야 합니다.

[제약 조건]
• 테스트케이스 수 $T$: $1 \le T \le 100$ (정수)
• 각 문자열 길이: $1 \le$ 길이 $\le 10{,}000$ (소문자로만 구성)

입력 설명

첫째 줄에 테스트케이스 수 $T$가 주어집니다. ($1 \le T \le 100$)
둘째 줄부터 $T$개의 줄에 소문자 문자열이 주어집니다. (길이 $\le 10,000$)

출력 설명

각 테스트케이스에 대해 중복 문자를 제거하고 남은 사전순 최솟값 문자열을 줄바꿈하여 출력합니다.

입력 예시
COPY
복사되었습니다!

3
cbacdcbc
bcabc
acdb

출력 예시
COPY
복사되었습니다!

acdb
abc
acdb

도움

각 문자의 남은 빈도 카운터를 유지하면서 단조 스택을 활용합니다. 스택의 top 문자가 현재 문자보다 크고 뒤에 더 등장할 여지가 있다면(카운터 > 0), 스택에서 pop하여 제거합니다.

출처/분류

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘