백준 - 카드 문자열 ( 13417번, JAVA )

changi123·2024년 11월 28일
0
post-thumbnail

Greedy ( https://www.acmicpc.net/problem/13417 )

풀이

  • Deque ( 데크, 덱 ) 의 성질을 이용하면 정말 쉬운 문제였다 .. Deque는 값을 앞에 넣을수도 뒤에 넣을수도 있는 메소드를 갖고 있다. 들어오는 문자를 마지막 문자와 비교해서 더 작다면 가장 앞으로 , 더 크다면 가장 뒤로 보냈다
package problem_solving.greedy;

import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Deque;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class BaekJoon_13417 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int T = Integer.parseInt(sc.next());
		
		while(T--  > 0 ) {
			int n = Integer.parseInt(sc.next());
			Deque<String> dq = new ArrayDeque<>();
			dq.addFirst(sc.next());
			StringBuilder sb = new StringBuilder();
			for(int i = 1 ; i < n ; i++) {
				String s = sc.next(); 
				String compare = dq.peek(); 
				if(compare.compareTo(s) < 0 ) {
					dq.addLast(s);
				}else {
					dq.addFirst(s);
				}
			}
			for(String s : dq) {
				sb.append(s);
			}
			System.out.println(sb);
//			System.out.println(dq.toString());
		}
	}

}


profile
개발자 홍찬기 꾸준한 사람이 되자

0개의 댓글

관련 채용 정보