https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AXVJuEvqLAADFASe&categoryId=AXVJuEvqLAADFASe&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=3&pageSize=10&pageIndex=2 

 

SW Expert Academy

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

swexpertacademy.com

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

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

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

 

[입력]

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

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

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

 

[출력]

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

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


풀이

1. 입력받은 문자를 탐색하며 새로운 배열에 넣어준다

2. 배열에 문자를 넣기 전 만약 해당 문자가 있다면 해당 문자는 삭제한다

3. 마지막까지 배열에 남아있는 문자를 사전순으로 정렬 후 출력한다

 

T = int(input())

for tc in range(1, T+1):
    text = list(input())
    alpa = []

    for i in range(len(text)):
        if not text[i] in alpa:
            alpa.append(text[i])
        else:
            alpa.remove(text[i])

    alpa.sort()

    if len(alpa) == 0:
        print('#{} Good'.format(tc))

    else:
        print('#{} '.format(tc),end='')
        for ans in alpa:
            print(ans, end='')
        print()

 

반응형

+ Recent posts