본문 바로가기
코딩테스트/프로그래머스

[프로그래머스] LV2 가장큰수 | 파이썬

by 애플파ol 2025. 5. 12.

Solution :

- 내 풀이

def solution(numbers):

    numbers.sort(key=lambda x:str(x)*6,reverse=True)
    # print(numbers)
    answer = ''
    for i in numbers:
        i=str(i)
        answer+=i
    
    answer=int(answer)
    
    return str(answer)

 

- 모범 답안

def solution(numbers):
    numbers.sort(key=lambda x:str(x)*6,reverse=True)
    
    str_numbers=[str(i) for i in numbers]
    
    answer=''.join(str_numbers)
    answer=int(answer)
    
    return str(answer)

 

Skills :

  1. 숫자를 문자열로 변환하면 문자 각각을 사전 순으로 비교함( ‘10’ -> ‘2’)
  2. str(0)을 join하면 0000으로 나오기 때문에 int로 변환 후 str로 해야함.
  3. “구분자’.join(iterable) : iterable한 객체를 구분자로 연결함.
  4. 순열로 하면 시간복잡도 문제 발생
    (순열 N=10 이하의 개수, 조합 N=20 이하의 수 일때 문제 없이 가능함. )