백준 16496 큰 수 만들기

문제 링크


알고리즘

  • 그리디
  • 정렬


풀이

이 문제는 프로그래머스에서 처음 봤다. 사실 그때 이 문제를 봤을 때 더 어렵게 풀었었는데, 다른 사람 풀이를 보고 더 쉽고, 간단한 방법을 알게 되었다.

그때 내가 본 풀이에 코드 두 줄을 추가해서 좀 더 효율적으로 개선했다.

아직도 파이썬을 잘 모르는 것 같다. 내장함수를 능숙하게 사용하는 코드를 보면 신기하기만 하다.


전체 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
n = int(input())
lst = list(map(int, input().split()))

def sol(lst):
    if sum(lst) == 0: 
        return '0'
    
    lst = list(map(str, lst))
    lst.sort(key = lambda x : x * 9, reverse = True)
    
    return ''.join(lst)

print(sol(lst))