Skip to content

Commit ceb7c24

Browse files
committed
#14 : 1431_시리얼 번호
1 parent b64116c commit ceb7c24

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#2023-04-27-Week3-과제
2+
#1431_시리얼 번호
3+
4+
'''
5+
문제
6+
다솜이는 기타를 많이 가지고 있다.
7+
그리고 각각의 기타는 모두 다른 시리얼 번호를 가지고 있다.
8+
다솜이는 기타를 빨리 찾아서 빨리 사람들에게 연주해주기 위해서
9+
기타를 시리얼 번호 순서대로 정렬하고자 한다.
10+
11+
모든 시리얼 번호는 알파벳 대문자 (A-Z)와 숫자 (0-9)로 이루어져 있다.
12+
시리얼번호 A가 시리얼번호 B의 앞에 오는 경우는 다음과 같다.
13+
14+
A와 B의 길이가 다르면, 짧은 것이 먼저 온다.
15+
16+
만약 서로 길이가 같다면,
17+
A의 모든 자리수의 합과 B의 모든 자리수의 합을 비교해서
18+
작은 합을 가지는 것이 먼저온다. (숫자인 것만 더한다)
19+
20+
만약 1,2번 둘 조건으로도 비교할 수 없으면,
21+
사전순으로 비교한다. 숫자가 알파벳보다 사전순으로 작다.
22+
시리얼이 주어졌을 때, 정렬해서 출력하는 프로그램을 작성하시오.
23+
24+
입력
25+
첫째 줄에 기타의 개수 N이 주어진다.
26+
N은 50보다 작거나 같다.
27+
둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다.
28+
시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어져 있다.
29+
시리얼 번호는 중복되지 않는다.
30+
31+
출력
32+
첫째 줄부터 차례대로 N개의 줄에 한줄에 하나씩
33+
시리얼 번호를 정렬한 결과를 출력한다.
34+
'''
35+
36+
#익명 함수 호출을 위한 lambda / 정렬을 위한 sort 사용 가능
37+
38+
N = int(input())
39+
40+
a = []
41+
42+
for i in range(N) :
43+
a.append(input())
44+
45+
def sum (x) :
46+
sum = 0
47+
for i in x :
48+
if (x>='0') and (x<='9') :
49+
sum += int(x)
50+
return sum
51+
52+
a = sorted(list, key= lambda x: (len(x), sum(x), x))
53+
54+
for i in a :
55+
print(i)

0 commit comments

Comments
 (0)