![[python] 백준 2870번 수학숙제](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs5fwU%2FbtrrWz2vXvE%2FkGwcovwqotZ78brJQF1Ql1%2Fimg.jpg)
[python] 백준 2870번 수학숙제알고리즘/백준2022. 1. 27. 23:56
Table of Contents
입력
첫 번째 줄 테스트 케이스 수
두 번째 줄부터 문자열
출력
문자열에 대해서 숫자만 뽑아서 비 내림차순으로 출력(비 내림차순에 대해서는 문제 내용에 쓰여있다)
문제풀이
테스트 케이스 수를 입력받고 다음 줄부터는 문자열에서 문자를 제외하고 숫자만 뽑아서 비 내림차순으로 정렬하여 출력해야 하는데 구분한다고 하면 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에 대한 설명에 부족한 점이 있다면 피드백 바랍니다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[python] 백준 1439번 뒤집기 (0) | 2022.01.31 |
---|---|
[python] 백준 11656번 접미사 배열 (0) | 2022.01.28 |
[python] 백준 5217번 쌍의 합 (0) | 2022.01.14 |
[python] 백준 15233번 Final Score (0) | 2022.01.02 |
[python] 백준 13229번 Selection Sum (0) | 2022.01.01 |
@펄찌 :: Pearl's Story
많은 생각들을 가지고 있고 사람들과 대화를 하는 것이 즐거운 펄의 스페이스입니다.
즐거운 하루 되셨으면 좋겠습니다😊