백준 문제풀이
백준 #2807 수학숙제
후;
2022. 1. 18. 13:42
반응형
백준 2870 수학숙제 문제이다.
상근이가 숫자만 찾으면 돼서 별로 어려운 문제는 아니다.
다만 문자열을 처리할 때, 파이썬이 아닌 다른 언어들은 살짝 까다로울 수 있다.
이 문제 해결의 핵심은 문자열에서 숫자를 어떻게 뽑아내는가이다.
나는 이것을 큐(queue)로 해결했는데, 문자일 경우 버리고, 숫자일 경우 임시 문자열에 더해서 배열에 추가하는 방식을 사용했다.
이후 map 을 사용해서 문자열을 숫자로 바꿔주면 자연스럽게 앞자리가 0인 숫자(문자열) 들은 10진수로 변환될 것이다.
(012 -> 12 , 0014 -> 14)
이렇게 해서 비내림차순(오름차순이라고 하면되는데 굳이...)으로 정렬해서 출력하면 끝.
n = int(input())
a = []
temp = ''
for i in range(n):
l = list(input())
while len(l) != 0:
if l[0].isdigit():
temp += l[0]
l.pop(0)
else:
l.pop(0)
if len(temp) :
a.append(temp)
temp = ''
if len(temp) != 0:
a.append(temp)
temp = ''
a = list(map(int, a))
a.sort()
for i in a:
print(i)
반응형