[programmers] 프로그래머스 가장 큰 수
(Python)
(글쓴날 : 2020.06.19)
* programmers, 프로그래머스 문제 Python 언어 풀이입니다.
* 소스 코드의 저작권은 글쓴이에게 있습니다.
프로그래머스 가장 큰 수
1) 문제
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42746
2) 풀이 과정
* 시간 복잡도 : O(n log n)
0 또는 양의 정수가 담긴 배열이 주어졌을 때, 배열 안의 정수들을 이어 붙여 가장 큰 수를 구하는 문제입니다.
저의 경우, Python을 사용했습니다.
모든 수가 0이 담겨 있을 경우를 예외 처리한 뒤, 정수들을 문자열로 치환한 후, 3을 곱해 내림차순 정렬하여 문제를 해결하였습니다.
3을 곱한 이유는 원소의 크기가 최대 1,000이므로 최소 천의 자리를 만들기 위함입니다.
예를 들어, 3과 34를 비교하면 34가 앞에 나와야 하지만 3과 30을 비교하면 3이 앞에 나와야 합니다. 이를 만족하려면 천의 자리로 만들어 3333과 3434를 비교하고 3333과 3030을 비교하면 됩니다.
3) 코드
* Python 코드
1
2
3
4
|
def solution(numbers):
if not sum(numbers):
return '0'
return "".join(sorted(map(str, numbers), reverse=True, key=lambda x: x * 3))
|
'Deprecated' 카테고리의 다른 글
[programmers] 프로그래머스 소수 찾기 Level 2(Python) (0) | 2020.06.19 |
---|---|
[programmers] 프로그래머스 조이스틱(Python) (0) | 2020.06.19 |
[programmers] 프로그래머스 더 맵게(Python) (0) | 2020.06.19 |
[Baekjoon Online Judge] 백준 3665번 최종 순위(Python) (0) | 2020.06.17 |
[Baekjoon Online Judge] 백준 1766번 문제집(Python) (0) | 2020.06.17 |