[백준] 시리얼번호 풀이

Hyunwoo Park·2021년 3월 13일
0

알고리즘

목록 보기
8/19

num이라는 리스트를 만들고, 문자형 정수 '0' 부터 '9' 까지 담았습니다.
N번 문장을 입력받으며, 해당 문자가 num에 속하면 (즉, 숫자형 문자가 있다면)
total 이라는 변수에 int형으로 바꿔 값을 더해줬습니다.

1순위로 길이, 2순위로 숫자의 합, 3순위로 사전 순으로 정렬해야 하기 때문에
arr이라는 답을 담을 변수에 (len(a), total, a)로 append 하였습니다.
lambda 함수를 통하여 key에 차례대로 arr[0], arr[1], arr[2] 로 정렬하고

for문을 통하여 3번째 요소(2번 인덱스)를 차례대로 출력하니 정답이 되었습니다.

N = int(input())
num = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
arr = []

for i in range(N):
    a = input()
    total = 0

    for j in a:
        if j in num:
            total += int(j)

    arr.append((len(a), total, a))

arr2 = sorted(arr, key=lambda x: (x[0], x[1], x[2]))

for i in arr2:
    print(i[2])
profile
만나서 반갑습니다.

0개의 댓글