SSONG Cloud

[SWEA] 1221 GNS 본문

Algorithm/SW Expert Academy

[SWEA] 1221 GNS

SSONGMI 2021. 2. 17. 00:15
반응형

문제 출처:swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14jJh6ACYCFAYD

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

: "ZRO", "ONE", "TWO", "THR", "FOR", "FIV", "SIX", "SVN", "EGT", "NIN" 로 구성된 문자열이 주어지고 이를 그 의미가 작은 순서대로 정렬하여 출력하여야 한다.(ex: ZRO = 0)

 

: alphabet 클래스를 만들어서 각각의 문자열마다 우선순위 변수를 지정하여 생성자를 통해 그 우선순위가 지정될 수 있도록 하고 Comparable 인터페이스를 구현했다. ComparaTo() 메소드를 오버라이딩해서 Sort 시킬 경우 우선순위가 낮은 순서대로 정렬될 수 있도록 했다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
 
public class Solution {
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static StringBuilder sb = new StringBuilder();
    static StringTokenizer st;
    public static class alphabet implements Comparable<alphabet>{
        String type;
        int priority;
         
        public alphabet(String type) {
            super();
            this.type = type;
            switch(type) {
            case"ZRO": this.priority = 1; break;
            case"ONE": this.priority = 2; break;
            case"TWO": this.priority = 3; break;
            case"THR": this.priority = 4; break;
            case"FOR": this.priority = 5; break;
            case"FIV": this.priority = 6; break;
            case"SIX": this.priority = 7; break;
            case"SVN": this.priority = 8; break;
            case"EGT": this.priority = 9; break;
            case"NIN": this.priority = 10;break;
            }
        }
 
        @Override
        public int compareTo(alphabet o) {
            // TODO Auto-generated method stub
            return this.priority - o.priority;
        }
         
    }
    public static void main(String[] args) throws IOException {
        int T = Integer.parseInt(br.readLine());
        for(int tc = 1; tc <= T; tc++) {
             
            st = new StringTokenizer(br.readLine());
            st.nextToken();
            int N = Integer.parseInt(st.nextToken());
            String[] str = br.readLine().split(" ");
            alphabet[] list = new alphabet[N];
             
            for(int i = 0; i < N; i++)
                list[i] = new alphabet(str[i]);
             
            Arrays.sort(list);
            sb.append("#" + tc + "\n");
            for(alphabet a : list)
                sb.append(a.type + " ");
            sb.append("\n");
        }
        System.out.println(sb);
    }
}

 

반응형

'Algorithm > SW Expert Academy' 카테고리의 다른 글

[SWEA] 7021 준홍이의 카드놀이  (0) 2021.02.18
[SWEA] 7985 Rooted Binary Tree 재구성  (0) 2021.02.17
[SWEA] 10032 과자 분배  (0) 2021.02.17
[SWEA] 1230 암호문3  (0) 2021.02.17
[SWEA] 1215 회문1  (0) 2021.02.14
Comments