[프로그래머스] 가장 큰 수
2022. 2. 7. 23:12ㆍPython/코딩 문제
# 문제 설명
0이상의 양의 정수로 이뤄진 배열이 주어졌을 때, 정수를 이어붙여 만들 수 있는 수 중에서 가장 큰 수를 반환해라.
단, 원소로 0이 주어질 수도 있다.
# 입출력 예시
입력 | 출력 |
[6, 10, 2] | 6210 |
[3, 30, 34, 5, 9] | 9534330 |
# 코드 풀이
def solution(numbers):
# 3자리수와 비교할 때, 제대로 대소관계를 파악하려고
snums = sorted(list(map(str, numbers)), reverse=True, key=lambda x: x*3)
return str(int("".join(snums)))
# 핵심 포인트
- Python의 str-list정렬은 첫 문자부터 차례로 오름차순 & len이 큰 것 먼저 정렬된다.
- 정렬대상들은 그대로 두고, key매개변수는 정렬대상의 값을 변형할 수 있다.
- 0이 여러 개 입력으로 주어질 때의 테스트 케이스도 고려해야 한다.
반응형
'Python > 코딩 문제' 카테고리의 다른 글
[프로그래머스] 더 맵게 (0) | 2022.02.17 |
---|---|
[리트코드] 743. Network Delay Time (0) | 2022.02.14 |
[프로그래머스] 베스트앨범 (0) | 2022.02.07 |
[리트코드] 17. Letter Combinations of a Phone Number (0) | 2022.02.01 |
[리트코드] 46. Permutations (0) | 2022.02.01 |