1431 : 시리얼 번호

서희찬·2022년 1월 21일
0

백준

목록 보기
94/105

문제

코드

isalpha 사용

import sys 
input = sys.stdin.readline

n = int(input())
codes = [0 for _ in range(n)]

def total(code):
    score=0
    for x in code:
        if x.isalpha():
            continue
        else :
            score+=int(x)
    return score
            
            
for i in range(n):
    codes[i]  = input().rstrip() #시리얼번호 입력받기 

codes.sort(key = lambda x:(len(x),total(x),x))#길이,합,사전순
for code in codes:
    print(code)

isdigit 사용


import sys 
input = sys.stdin.readline

n = int(input())
codes = [0 for _ in range(n)]

def total(code):
    score=0
    for x in code:
        if x.isdigit():
            score+=int(x)
    return score
            
            
for i in range(n):
    codes[i]  = input().rstrip() #시리얼번호 입력받기 

codes.sort(key = lambda x:(len(x),total(x),x))#길이,합,사전순

for code in codes:
    print(code)

해설


시간은 같게 뜬다.

codes리스트에 기타 시리얼 번호를 입력받고
정렬을 진행해주는데 sort 함수의 key를 lambda형식으로 받아서 진행한다

codes.sort(key = lambda x:(len(x),total(x),x))#길이,합,사전순

람다로 전달해주면 위의 순서대로 정렬을 진행한다.
그렇기에 길이순으로 정렬을 진행하고 total 즉, 합순으로 정렬하고 마지막으로 사전순 정렬을 진행하게 된다.

람다함수의 매력이란...

profile
부족한 실력을 엉덩이 힘으로 채워나가는 개발자 서희찬입니다 :)

0개의 댓글