본문 바로가기
BOJ

[python] 백준 2870번 - 수학숙제

by yujinkimkim 2023. 1. 29.

2870번: 수학숙제 (acmicpc.net)

 

2870번: 수학숙제

종이에서 찾은 숫자의 개수를 M이라고 하면, 출력은 M줄로 이루어져야 한다. 각 줄에는 종이에서 찾은 숫자를 하나씩 출력해야 한다. 이때, 비내림차순으로 출력해야 한다. 비내림차순은 내림차

www.acmicpc.net

상근이 숙제 대신 해주는 문제임요 ㅡㅡ 상근이자슥

지금 문제 풀게 쪼~~~~~~~~~~~~꼼 밀려서 ㅎㅎ

제일 쉬워보이는 놈으로 가져왔당 ㅎㅎ

꼼수킴 ㅎㅎ

 

저 원트 했어용 얏호~


n = int(input())

arr = []
numArr = ['0','1','2','3','4','5','6','7','8','9']

for i in range(n):
    arr.append(input())
num = ""
ans = []

for i in arr:
    for j in i:
        if j in numArr:
            num += j
        elif num != '':
            N = int(num)
            ans.append(N)
            num = ""
    if i[-1] in numArr:
        N = int(num)
        ans.append(N)
        num = ""

ans.sort()
for i in ans:
    print(i)

예시에 002 요런 애들 어떻게 처리할지 고민하다가

막 저기 ans에서 하나씩 불러와서 

거기서 또 하나씩 불러와서 1~9 만나기 전까지 idx 값 더해줘서 막 pop 해주는

방식으로 하려다가 오류 짱많이 나고 넘 삥 돌아가는 느낌이라

고냥 문자열 정수로 바꿔주는 방법으로 했다

 

저기 if i[-1] 뭐시기 저기 왜 헸냐면

문자열에 숫자만 있어서 ans에 append 못 할 수도 있으니께 저렇게 했습니당용

 

ㅠ 더 좋은 코드가 있을 거 같긴 한데

스스로 해냈다는 거에 만족하고

 

이제 다 했으니까

좋은 코드 찾으러 구글링하러 다닐게용~

 


-김유진

댓글