반응형
https://www.acmicpc.net/problem/16496
소스코드
풀이
★ 핵심은 입력 받은 리스트의 원소들을 문자열 형태로 바꾸고(사전 순으로 크기를 비교하기 위헤), 대소 비교를 통해 정렬해주는 것입니다 !
ex)
[3,30,34,5,9]를 문자열 형태로 바꾼 뒤, lambda x:x*3을 기준으로 내림차순 정렬하게 되면,
[999,555,343434,333,303030] => [9,5,34,3,30] 형태로 정렬됩니다 !
★ 이 때, 해당 문자열에 10을 곱한 값을 기준으로 정렬하는 이유는 주어진 수가 1,000,000,000보다 작거나 같은 수이기 때문입니다. 즉 입력 값으로 한 자릿수의 값과 10자릿수를 비교하기 위해선 한 자릿수에 10을 곱해야 합니다.
ex)
[4,54,56,100,1,000,000,000]
위와 같은 입력이 주어졌을 때, 4와 1,000,000,000의 대소비교를 하기 위해선 '4'에 10을 곱한 값을 알아야 합니다.
'4' * 10 = 4444444444 이 되고 이는 '1000000000' * 10 보다 큰 값이 됩니다. ('1,000,000,000'에 10을 곱해도 사전 순으로 '4'보다 작음)
반응형
'Algorithm > 백준' 카테고리의 다른 글
[백준 알고리즘] 27497번: 알파벳 블록 (Python) (0) | 2023.08.16 |
---|---|
[백준 알고리즘] 3111번: 검열 (Python) (1) | 2023.08.14 |
[백준 알고리즘] 9576번: 책 나눠주기 (Python) (0) | 2023.08.11 |
[백준 알고리즘] 17952번: 과제는 끝나지 않아! (Python) (0) | 2023.08.10 |
[백준 알고리즘] 15903번: 카드 합체 놀이 (Python) (1) | 2023.08.10 |