[프로그래머스] 가장 큰 수 - python

코린이·2022년 5월 25일
0

프로그래머스

목록 보기
5/22

📢 "가장 큰 수" 문제

프로그래머스 문제 링크

💡 풀이

사용언어 : python

1.list 요소들을 map을 이용하여 str으로 변환


2. sort() 함수 사용

  • key를 이용하여 정렬되는 기준을 설정 가능
    • lambda는 이름없는 함수로 함수를 따로 선언하지 않고, 바로 사용할 수 있는 함수이다.
      ex ) key = lamba x : x * 3
    • 숫자가 아닌 str으로 정렬을 하면 크기가 아닌 순서로 정렬이 된다.
      ex ) [1, 10, 2, 25, 6]
    • numbers원소가 0이상 1000이하이므로 lambda x : x * 3을 하여 정렬을 한다.

      "1"과 "10"을 *3을 하면
      "111"과 "101010"이다. 이 string 두개를 앞에서부터 비교하면
      10이 앞에 1이 뒤에온다.

    • reverse = "True"를 하여 역순으로 정렬한다.
      ex) [6,2,10]
      ex) [9,5,34,3,30]

  1. join() 함수 사용
    • ''.join()을 사용하여 list의 요소들을 하나로 합쳐준다
    • 이후 int를 해주는 이유는 예를 들어 join을 한 후 0000이 나왔을 경우 숫자 0000은 없으므로 0으로 고치기 위해 int로 변환 후 다시 str으로 변환해준다.

💡 코드

def solution(numbers):
    numbers = list(map(str, numbers))
    numbers.sort(key=lambda x: x*3, reverse=True)
    answer = str(int(''.join(numbers)))
    return answer
profile
초보 개발자

0개의 댓글