[백준] 1431번 시리얼 번호 - 파이썬/정렬

JinUk Lee·2023년 1월 30일
0

백준 알고리즘

목록 보기
30/78

https://www.acmicpc.net/problem/1431



N = int(input())

G_list = []

for _ in range(N):

    G = list(input())

    sum_num = 0 # 숫자의 합을 기록

    for g in G:
        if g.isdigit(): # 문자가 숫자인지 아닌지 판별해줌
            sum_num+= int(g)

    G_list.append( (''.join(G),len(G),sum_num   ) )


G_list.sort(key=lambda x:(x[1],x[2],x[0])) # 조건대로 정렬

for i in G_list:
    print(i[0])

문자와 문자의 길이, 문자 내부의 자리수의 합을 리스트에 넣고 정렬해준다.

isdigit() 라는 메소드에 대해 알게되었다.

string 클래스의 메소드로 문자가 모두 숫자이면 True를 반환, 하나라도 문자가 포함되어있으면 False를 반환한다.

또한, 0을 포함하는 양의 정수에 한해서만 판별 가능하다.

profile
개발자 지망생

0개의 댓글