본문 바로가기
Problem Solving/Baekjoon

[백준] 13417 카드 문자열 - Data Structure / Java

by graycode 2022. 12. 14.

 문제 링크

 

13417번: 카드 문자열

입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 처

www.acmicpc.net

 

 풀이 과정

 

 풀이 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.StringTokenizer;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int t = Integer.parseInt(br.readLine());

        Deque<Character> dq = new ArrayDeque<>();

        while (t-- > 0) {
            int n = Integer.parseInt(br.readLine());

            st = new StringTokenizer(br.readLine());
            dq.offer(st.nextToken().charAt(0));

            while (n-- > 1) {
                char token = st.nextToken().charAt(0);
                if (token <= dq.peekFirst())
                    dq.offerFirst(token);
                else
                    dq.offerLast(token);
            }

            while (!dq.isEmpty())
                bw.write(dq.poll());

            bw.write("\n");
            dq.clear();
        }

        bw.flush();
    }

}

댓글