[SWEA] 1221_GNS

김태민·2021년 9월 1일
0

알고리즘

목록 보기
16/77

mingsssss

1. 문제

숫자 체계가 우리와 다른 어느 행성이 있다. 아래는 이 행성에서 사용하는 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이다.

[출력]

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

2. 코드

import sys
sys.stdin = open('input.txt')

T = int(input())

for tc in range(T):
    M, N = map(str, input().split())
    numbers = list(map(str, input().split()))

    num_list = ['ZRO', 'ONE', 'TWO', 'THR', 'FOR', 'FIV', 'SIX', 'SVN', 'EGT', 'NIN']
    cnt = 0
    for num in num_list:
        for i in range(cnt, int(N)):
            if num == numbers[i]:
                numbers[cnt], numbers[i] = numbers[i], numbers[cnt]
                cnt += 1

    print('#{0}'.format(tc+1), *numbers)

3. 리뷰

num_list를 따로 만들어서 하나씩 비교를 해서 출력했다.

profile
어제보다 성장하는 개발자

0개의 댓글