SWEA(SWExpertacAdemy)

[SWEA] 10912. 외로운 문자 D3 (자바)

심층코드 2025. 5. 20. 16:55

10912. 외로운 문자 D3


[문제]

알파벳 소문자 만으로 이루어진 문자열이 주어진다.

이 문자열에서 같은 두 문자들을 짝짓고 남는 문자가 무엇인지 구하는 프로그램을 작성하라.

같은 문자를 여러 번 짝지어서는 안 된다.

 

[입력]

첫 번째 줄에 테스트 케이스의 수 T가 주어진다.

각 테스트 케이스의 첫 번째 줄에는 알파벳 소문자 만으로 이루어진 문자열이 주어진다.

이 문자열의 길이는 1이상 100이하이다.

 

[출력]

각 테스트 케이스 마다 예제와 같은 형식으로 남는 문자를 사전 순서대로 출력한다.

만약 어떤 문자도 남지 않는다면 “Good”을 출력하도록 한다.

입력 
 
 
출력
#1 Good
#2 cy
#3 b
#4 abc
#5 z
#6 mn
 // 첫번째 테스트 케이스의 답



[코드]

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++) {
        	String S=br.readLine();
        	
        	List<Character> arr=new ArrayList<>();
        	
        	for (int i2 = 0; i2 < S.length(); i2++) {
				arr.add(S.charAt(i2));
			}
        	Collections.sort(arr);
        	
        	
        	if(arr.size()!=1) {
	        	for (int i3 = 0; i3 < arr.size()-1; ) {
					if(arr.get(i3)==arr.get(i3+1)) {
						arr.remove(i3+1);
						arr.remove(i3);
						i3=0;
					}
					else {
						i3++;
					}
	        	}
			}
        	if (arr.size()==0) {
				System.out.println("#"+i+" Good");
			}
        	else {
        		System.out.print("#"+i+" ");
        		for (int i4 = 0; i4 < arr.size(); i4++) {
        			System.out.print(arr.get(i4));	
				}
        		System.out.println();
        	}
        }
        br.close();
	}
}