- 문제 : https://www.acmicpc.net/problem/2870
문제 이해
- 여러 개의 문자열이 주어지는데, 그때마다 숫자인 부분들을 모두 모아서 오름차순으로 출력하는 문제다.
- 주어진 문자열(word)를 선형 탐색하면서 숫자인 부분들만 temp로 모으고, 만약 다음 원소가 알파벳이라면 해당 숫자는 저장한 뒤, temp를 초기화한다.
- 여기서 주의해야할 점은 가장 끝 원소도 명시적으로 처리(i == len(word) - 1) 해줘야 하고, 그때 이전에 입력된 숫자가 있는지 확인(temp != '')하는 것이다.
- 위 로직으로 숫자들을 answer에 모두 모았으면 오름차순 정렬한 뒤 하나씩 출력해주면된다.
정답 풀이
answer = []
for _ in range(int(input())):
temp = '' # 그때그때마다 숫자들 모으는 용도
word = list(input())
for i in range(len(word)):
if word[i].isdigit():
temp += word[i]
if not word[i].isdigit() or i == len(word) - 1:
if temp != '':
answer.append(int(temp))
temp = ''
answer.sort()
for i in range(len(answer)):
print(answer[i])
'백준 > String' 카테고리의 다른 글
[문자열/백준] 22233번 : 가희와 키워드 (0) | 2023.06.14 |
---|---|
[문자열/백준] 1213번 : 팰린드롬 만들기 (0) | 2023.06.14 |
[문자열/백준] 2607번 : 비슷한 단어 (0) | 2023.06.12 |
[문자열/백준]20920번 : 영단어 암기는 괴로워 (0) | 2023.06.01 |
[문자열/백준] 11655번 : ROT13 (0) | 2023.06.01 |