728x90
반응형
https://www.acmicpc.net/problem/13417
풀이
입력받음 카드문자들을 왼쪽 or 오른쪽으로 놓았을 때 가장 사전순으로 앞에있는 문자열을 출력하는 문제입니다.
Deque를 사용하면 간단하게 푸실 수 있습니다.
처음에 비어있으면 문자를 넣고 그 후부터 비교하면서 넣으면 됩니다.
Deque의 맨 앞 문자가 넣을 문자보다 크거나 같으면 앞에 아니면 뒤에 넣는 식으로 문제를 푸시면 됩니다.
소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Deque;
import java.util.LinkedList;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int size = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
while(size --> 0) {
br.readLine();
Deque<Character> deque = new LinkedList<>();
StringTokenizer st = new StringTokenizer(br.readLine());
while(st.hasMoreTokens()) {
char ch = st.nextToken().charAt(0);
if(deque.isEmpty()) {
deque.add(ch);
}
else {
if(deque.getFirst() >= ch) {
deque.addFirst(ch);
}
else {
deque.addLast(ch);
}
}
}
while(deque.size() != 0) {
sb.append(deque.poll());
}
sb.append("\n");
}
System.out.print(sb);
}
}
728x90
반응형
'백준 > 10001 - 15000' 카테고리의 다른 글
[백준] 11868번 : 님 게임2(JAVA) (0) | 2021.08.11 |
---|---|
[백준] 11726번 : 2Xn 타일링(JAVA) (0) | 2021.08.07 |
[백준] 12931번 : 두 배 더하기(JAVA) (0) | 2021.08.04 |
[백준] 12517, 12518, 12525, 12526번 : Centauri Prime(JAVA) (0) | 2021.08.04 |
[백준] 11117번 : Letter Cookies(JAVA) (0) | 2021.08.03 |
댓글