망나니 AWOS의 일상
article thumbnail

입력

첫 번째 줄 테스트 케이스 수

두 번째 줄부터 문자열

출력

문자열에 대해서 숫자만 뽑아서 비 내림차순으로 출력(비 내림차순에 대해서는 문제 내용에 쓰여있다)

문제풀이

테스트 케이스 수를 입력받고 다음 줄부터는 문자열에서 문자를 제외하고 숫자만 뽑아서 비 내림차순으로 정렬하여 출력해야 하는데 구분한다고 하면 split함수가 생각날 것이다. 하지만 일반적인 split함수로는 문자 하나에 대해서만 구분할 수 있는데 re라이브러리 안에 있는 split함수를 쓰면 구분할 문자가 여러 개여도 구분할 수 있다.

 

re — 정규식 연산 — Python 3.10.2 문서

scanf() 시뮬레이션 파이썬에는 현재 scanf()에 해당하는 것이 없습니다. 정규식은 일반적으로 scanf() 포맷 문자열보다 강력하지만, 더 장황하기도 합니다. 아래 표는 scanf() 포맷 토큰과 정규식 간의

docs.python.org

위의 독스에서 split에 대한 설명이 충분히 나와있기 때문에 설명은 생략하겠다.

 

 

re.split 함수로 숫자로 구성된 문자열을 뽑아내어 int형으로 변환해주고 리스트에 넣어서 sort함수로 오름차순 정렬하여 출력하면 된다.

 

완성된 코드👌

import re

res = list()
for i in range(int(input())):
    s = input()
    for v in re.split('[a-z]', s):
        if v:
            res.append(int(v))
res.sort()
for val in res: print(val)

 

split에 대한 설명에 부족한 점이 있다면 피드백 바랍니다.

profile

망나니 AWOS의 일상

@AWOS

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!