SWEA(SWExpertacAdemy)

[swea] 1221. [S/W 문제해결 기본] 5일차 - GNS D3 (자바)

심층코드 2025. 5. 19. 18:24

1221. [S/W 문제해결 기본] 5일차 - GNS D3

[문제]
숫자 체계가 우리와 다른 어느 행성이 있다. 아래는 이 행성에서 사용하는 0 ~ 9의 값을 순서대로 나타낸 것이다.

"ZRO", "ONE", "TWO", "THR", "FOR", "FIV", "SIX", "SVN", "EGT", "NIN"

0 ~ 9 의 값을 나타내는 단어가 섞여 있는 문자열을 받아 작은 수부터 차례로 정렬하여 출력하는 프로그램을 작성하라.

예를 들어 입력 문자열이 "TWO NIN TWO TWO FIV FOR" 일 경우 정렬한 문자열은 "TWO TWO TWO FOR FIV NIN" 이 된다.

[입력]

입력 파일의 첫 번째 줄에는 테스트 케이스의 개수가 주어진다.

그 다음 줄에 #기호와 함께 테스트 케이스의 번호가 주어지고 공백 문자 후 테스트 케이스의 길이가 주어진다.

테스트 케이스의 길이란, 문자열의 글자수가 아닌 단어의 갯수를 말한다.

그 다음 줄부터 바로 테스트 케이스가 주어진다. 단어와 단어 사이는 하나의 공백으로 구분하며, 문자열의 길이 N은 100≤N≤10000이다.

[출력]

#부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 정렬된 문자열을 출력한다.

입력10
#1 7041
SVN FOR ZRO NIN FOR EGT EGT TWO FOR FIV FIV ONE SVN ONE ONE FIV TWO SVN SIX ONE FOR TWO THR TWO TWO ONE SIX EGT FIV SVN SIX ONE EGT NIN TWO SVN NIN FIV FOR THR ONE TWO THR THR FOR ONE ONE THR EGT SVN FOR TWO SVN SVN NIN THR ONE NIN EGT SIX FIV ZRO TWO EGT SIX ZRO TWO FOR EGT SIX FIV ZRO NIN ZRO ZRO SIX ONE THR EGT NIN THR FOR FOR SIX ZRO SIX SIX ONE...
#2 7778
EGT ONE THR SIX ZRO ZRO NIN FIV FOR EGT SVN FOR NIN NIN EGT THR EGT FIV TWO ONE FIV THR ONE SIX SVN THR ZRO FIV TWO TWO ONE FIV ZRO TWO SIX TWO EGT THR SIX SVN FOR FIV THR SVN SVN EGT EGT FOR ZRO THR FIV EGT NIN THR ONE SVN ZRO NIN THR THR FIV SVN THR SIX FOR NIN FOR ZRO ZRO NIN SVN EGT SIX FIV TWO TWO THR FIV THR SVN NIN ONE ZRO FIV ZRO NIN THR SIX ...
...
 
출력#1
ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ...
#2
ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ZRO ...
...

 


[코드]

import java.io.*;
import java.util.*;


public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());
        for (int i = 1; i <= T; i++) {
        	StringTokenizer st=new StringTokenizer(br.readLine());
        	String HN=st.nextToken();
        	int N=Integer.parseInt(st.nextToken());
        	
        	StringTokenizer st2=new StringTokenizer(br.readLine());
        	int ZRO=0, ONE=0,TWO=0,THR=0,FOR=0,FIV=0,SIX=0,SVN=0,EGT=0,NIN=0;
        	for (int i2 = 0; i2 < N; i2++) {
        		String A=st2.nextToken();
        		if (A.equals("ZRO")) {
					ZRO++;
				}
        		else if (A.equals("ONE")) {
					ONE++;
				}
        		else if (A.equals("TWO")) {
					TWO++;
				}
        		else if (A.equals("THR")) {
					THR++;
				}
        		else if (A.equals("FOR")) {
					FOR++;
				}
        		else if (A.equals("FIV")) {
					FIV++;
				}
        		else if (A.equals("SIX")) {
					SIX++;
				}
        		else if (A.equals("SVN")) {
					SVN++;
				}
        		else if (A.equals("EGT")) {
					EGT++;
				}
        		else if (A.equals("NIN")) {
					NIN++;
				}
			}
        	
        	System.out.println(HN);
        	for (int i4 = 0; i4 < ZRO; i4++) {
				System.out.print("ZRO ");
			}
        	for (int i5 = 0; i5 < ONE; i5++) {
				System.out.print("ONE ");
			}
        	for (int i6 = 0; i6 < TWO; i6++) {
				System.out.print("TWO ");
			}
        	for (int i7 = 0; i7 < THR; i7++) {
				System.out.print("THR ");
			}
        	for (int i8 = 0; i8 < FOR; i8++) {
				System.out.print("FOR ");
			}
        	for (int i9 = 0; i9< FIV; i9++) {
				System.out.print("FIV ");
			}
        	for (int i10 = 0; i10 < SIX; i10++) {
				System.out.print("SIX ");
			}
        	for (int i11 = 0; i11 < SVN; i11++) {
				System.out.print("SVN ");
			}
        	for (int i12 = 0; i12 < EGT; i12++) {
				System.out.print("EGT ");
			}
        	for (int i13 = 0; i13 < NIN; i13++) {
				System.out.print("NIN ");
			}

        	System.out.println();
        }
        br.close();
	}
}