백준 #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)
반응형

'백준 문제풀이' 카테고리의 다른 글

백준 #3474 교수가 된 현우(Python)  (0) 2022.01.25
백준 #10709 기상캐스터  (0) 2022.01.20
백준 #4659 비밀번호 발음하기  (0) 2022.01.17
백준 #1992 쿼드트리  (0) 2022.01.15
#1697 백준 숨바꼭질 코드 C++  (0) 2021.07.20